Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nanopb/nanopb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>2022-05-01 14:04:09 +0300
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2022-05-01 14:11:52 +0300
commit4cad0c3873020ad5a3a8250128d52644fc5958fd (patch)
tree8ea812e97cc9e39ea02a3587c3294e306673ff3a /pb_decode.c
parentada8903102ca2e2fdf1c04e6f7d9e1a27fdcfe78 (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.c5
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))