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
path: root/tests
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2018-10-11 09:52:23 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2018-10-11 09:57:26 +0300
commitb84b723320c9e55ee26a52566cbe3a92fdf41eca (patch)
tree4e7498dcd6fad80d4d913eeb5246eeaf5a762b78 /tests
parent7369de399c6b1f7ad31d8f3b56ea34493190b11a (diff)
Don't release fields of a callback
If submessage array is a callback, there's nothing to release.
Diffstat (limited to 'tests')
-rw-r--r--tests/mem_release/mem_release.c13
-rw-r--r--tests/mem_release/mem_release.proto6
2 files changed, 19 insertions, 0 deletions
diff --git a/tests/mem_release/mem_release.c b/tests/mem_release/mem_release.c
index eb62cad..6e06da5 100644
--- a/tests/mem_release/mem_release.c
+++ b/tests/mem_release/mem_release.c
@@ -177,6 +177,11 @@ static bool test_OneofMessage()
return true;
}
+static bool dummy_decode_cb(pb_istream_t *stream, const pb_field_t *field, void **arg)
+{
+ return false;
+}
+
/* Garbage input */
static bool test_Garbage()
{
@@ -195,6 +200,14 @@ static bool test_Garbage()
TEST(!pb_decode(&stream, TestMessage_fields, &msg));
}
+ {
+ RepeatedMessage msg = RepeatedMessage_init_zero;
+ pb_istream_t stream = pb_istream_from_buffer(buffer, msgsize);
+ msg.subs.arg = NULL;
+ msg.subs.funcs.decode = dummy_decode_cb;
+ TEST(!pb_decode(&stream, RepeatedMessage_fields, &msg));
+ }
+
return true;
}
diff --git a/tests/mem_release/mem_release.proto b/tests/mem_release/mem_release.proto
index 0816dc2..b0addbd 100644
--- a/tests/mem_release/mem_release.proto
+++ b/tests/mem_release/mem_release.proto
@@ -33,3 +33,9 @@ message OneofMessage
}
required int32 last = 4;
}
+
+message RepeatedMessage
+{
+ required int32 first = 1;
+ repeated SubMessage subs = 2;
+}