diff options
author | David Robillard <d@drobilla.net> | 2020-08-15 20:11:19 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-01-13 23:03:37 -0500 |
commit | a10fddf0f697e78325ddcfbc71af8f154ffd2a82 (patch) | |
tree | 75c2dd20aef99bff82dc81c93ab29b81313a9c8e /src/reader.c | |
parent | 0839a0fda214250c41c07c799c700f4432e54963 (diff) | |
download | serd-a10fddf0f697e78325ddcfbc71af8f154ffd2a82.tar.gz serd-a10fddf0f697e78325ddcfbc71af8f154ffd2a82.tar.bz2 serd-a10fddf0f697e78325ddcfbc71af8f154ffd2a82.zip |
Improve reader error handling
Diffstat (limited to 'src/reader.c')
-rw-r--r-- | src/reader.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/reader.c b/src/reader.c index 1677ed92..354ff478 100644 --- a/src/reader.c +++ b/src/reader.c @@ -124,6 +124,10 @@ emit_statement(SerdReader* const reader, graph = reader->default_graph; } + if (reader->stack.size + (2 * sizeof(SerdNode)) > reader->stack.buf_size) { + return SERD_ERR_OVERFLOW; + } + /* Zero the pad of the object node on the top of the stack. Lower nodes (subject and predicate) were already zeroed by subsequent pushes. */ serd_node_zero_pad(o); |