diff options
author | Petteri Aimonen <jpa@git.mail.kapsi.fi> | 2022-05-01 14:04:09 +0300 |
---|---|---|
committer | Petteri Aimonen <jpa@git.mail.kapsi.fi> | 2022-05-01 14:11:52 +0300 |
commit | 4cad0c3873020ad5a3a8250128d52644fc5958fd (patch) | |
tree | 8ea812e97cc9e39ea02a3587c3294e306673ff3a /pb_decode.c | |
parent | ada8903102ca2e2fdf1c04e6f7d9e1a27fdcfe78 (diff) |
Fix passing of error message from substream callback (#703)
Error messages from submessage callbacks were being
replaced with "callback failed".
Diffstat (limited to 'pb_decode.c')
-rw-r--r-- | pb_decode.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/pb_decode.c b/pb_decode.c index 28059be..5405c87 100644 --- a/pb_decode.c +++ b/pb_decode.c @@ -761,7 +761,10 @@ static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type { prev_bytes_left = substream.bytes_left; if (!field->descriptor->field_callback(&substream, NULL, field)) - PB_RETURN_ERROR(stream, "callback failed"); + { + PB_SET_ERROR(stream, substream.errmsg ? substream.errmsg : "callback failed"); + return false; + } } while (substream.bytes_left > 0 && substream.bytes_left < prev_bytes_left); if (!pb_close_string_substream(stream, &substream)) |