aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-08-15 20:11:19 +0200
committerDavid Robillard <d@drobilla.net>2022-01-13 23:03:37 -0500
commita10fddf0f697e78325ddcfbc71af8f154ffd2a82 (patch)
tree75c2dd20aef99bff82dc81c93ab29b81313a9c8e /src/reader.c
parent0839a0fda214250c41c07c799c700f4432e54963 (diff)
downloadserd-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.c4
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);