pebble/third_party/nanopb/tests/regression/GHSA-gcx3-7m76-287p/test.c
2025-01-27 11:38:16 -08:00

39 lines
800 B
C

#include <pb_decode.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "test_helpers.h"
#include "test.pb.h"
bool stream_callback(pb_istream_t *stream, uint8_t *buf, size_t count)
{
FILE *file = (FILE*)stream->state;
size_t len = fread(buf, 1, count, file);
if (len == count)
{
return true;
}
else
{
stream->bytes_left = 0;
return false;
}
}
int main()
{
pb_istream_t stream = {&stream_callback, NULL, SIZE_MAX};
MyMessage msg = MyMessage_init_default;
bool status;
stream.state = stdin;
SET_BINARY_MODE(stdin);
set_max_alloc_bytes(512);
status = pb_decode(&stream, MyMessage_fields, &msg);
assert(!status);
assert(strcmp(stream.errmsg, "realloc failed") == 0);
return 0;
}