mirror of
https://github.com/google/pebble.git
synced 2025-08-30 11:17:08 -04:00
Import of the watch repository from Pebble
This commit is contained in:
commit
3b92768480
10334 changed files with 2564465 additions and 0 deletions
21
third_party/nanopb/tests/regression/issue_547/SConscript
vendored
Normal file
21
third_party/nanopb/tests/regression/issue_547/SConscript
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Regression test for issue #547:
|
||||
# Buffer overflow when encoding bytes with size set to 65535
|
||||
|
||||
Import("env")
|
||||
|
||||
env.NanopbProto("test.proto")
|
||||
|
||||
# Define the compilation options
|
||||
opts = env.Clone()
|
||||
opts.Append(CPPDEFINES = {'PB_FIELD_32BIT': 1})
|
||||
|
||||
# Build new version of core
|
||||
strict = opts.Clone()
|
||||
strict.Append(CFLAGS = strict['CORECFLAGS'])
|
||||
strict.Object("pb_encode_fields32.o", "$NANOPB/pb_encode.c")
|
||||
strict.Object("pb_common_fields32.o", "$NANOPB/pb_common.c")
|
||||
|
||||
# Build and run test
|
||||
test = opts.Program(["test.c", "test.pb.c", "pb_encode_fields32.o", "pb_common_fields32.o"])
|
||||
|
||||
env.RunTest(test)
|
28
third_party/nanopb/tests/regression/issue_547/test.c
vendored
Normal file
28
third_party/nanopb/tests/regression/issue_547/test.c
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#include <string.h>
|
||||
#include <pb_encode.h>
|
||||
#include <unittests.h>
|
||||
#include "test.pb.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
pb_byte_t buf[512];
|
||||
MyMessage msg = MyMessage_init_zero;
|
||||
pb_ostream_t stream = pb_ostream_from_buffer(buf, sizeof(buf));
|
||||
|
||||
msg.mybytes.size = 0xFFFFFFFF;
|
||||
|
||||
if (pb_encode(&stream, MyMessage_fields, &msg))
|
||||
{
|
||||
fprintf(stderr, "Failure: expected pb_encode() to fail.\n");
|
||||
return 1;
|
||||
}
|
||||
else if (strcmp(PB_GET_ERROR(&stream), "bytes size exceeded") != 0)
|
||||
{
|
||||
fprintf(stderr, "Unexpected encoding error: %s\n", PB_GET_ERROR(&stream));
|
||||
return 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
7
third_party/nanopb/tests/regression/issue_547/test.proto
vendored
Normal file
7
third_party/nanopb/tests/regression/issue_547/test.proto
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
syntax = "proto2";
|
||||
|
||||
import "nanopb.proto";
|
||||
|
||||
message MyMessage {
|
||||
required bytes mybytes = 1 [(nanopb).max_size = 512];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue