aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-06-21 19:57:10 +0200
committerDavid Robillard <d@drobilla.net>2021-03-08 23:23:06 -0500
commit2fb247d2beb71539ceba8f2841d7c1bad933ab36 (patch)
tree20108ff969b4c1f4b237f33f5ac2471e312e239d
parentd9ea0564d0954967788b688a224cf81f7892c4a7 (diff)
downloadserd-2fb247d2beb71539ceba8f2841d7c1bad933ab36.tar.gz
serd-2fb247d2beb71539ceba8f2841d7c1bad933ab36.tar.bz2
serd-2fb247d2beb71539ceba8f2841d7c1bad933ab36.zip
Fix crash when attempting to read before starting
-rw-r--r--src/byte_source.c4
-rw-r--r--test/test_reader_writer.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/byte_source.c b/src/byte_source.c
index ccdc82e5..ca02ff3e 100644
--- a/src/byte_source.c
+++ b/src/byte_source.c
@@ -86,6 +86,10 @@ serd_byte_source_open_source(SerdByteSource* source,
SerdStatus
serd_byte_source_prepare(SerdByteSource* source)
{
+ if (source->page_size == 0) {
+ return SERD_FAILURE;
+ }
+
source->prepared = true;
if (source->from_stream) {
diff --git a/test/test_reader_writer.c b/test/test_reader_writer.c
index e0f636e9..a3e99fa4 100644
--- a/test/test_reader_writer.c
+++ b/test/test_reader_writer.c
@@ -327,6 +327,9 @@ test_reader(const char* path)
SerdReader* reader = serd_reader_new(world, SERD_TURTLE, 0, sink, 4096);
assert(reader);
+ assert(serd_reader_read_document(reader) == SERD_FAILURE);
+ assert(serd_reader_read_chunk(reader) == SERD_FAILURE);
+
serd_reader_add_blank_prefix(reader, "tmp");
#if defined(__GNUC__)