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>2016-12-09 19:57:08 +0300
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2016-12-09 19:57:08 +0300
commit58af4d1fb733c5348b68dd3980f2a230d95400b4 (patch)
tree2d70ebb12e34a4e55fbc369344d98c4e7dc4958f /pb_encode.c
parent66a5f06c985537a7e45969c52260b083ec04e82b (diff)
Enable clang integer sanitizer and clean up a few warnings.
Changed to use simple indexing instead of while (count--) in buf_read()/buf_write(), because the count overflowed from 0 to max on the last iteration. While the unsigned integer overflow is defined and behaviour was correct, making this simple change allowed enabling the sanitizer which might catch true errors elsewhere in the code.
Diffstat (limited to 'pb_encode.c')
-rw-r--r--pb_encode.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/pb_encode.c b/pb_encode.c
index 13bda22..cafe853 100644
--- a/pb_encode.c
+++ b/pb_encode.c
@@ -59,11 +59,12 @@ static const pb_encoder_t PB_ENCODERS[PB_LTYPES_COUNT] = {
static bool checkreturn buf_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count)
{
+ size_t i;
pb_byte_t *dest = (pb_byte_t*)stream->state;
stream->state = dest + count;
- while (count--)
- *dest++ = *buf++;
+ for (i = 0; i < count; i++)
+ dest[i] = buf[i];
return true;
}