From 834ca36d4cbbfd63789f7894ab2d5d370347d76f Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 21 Jun 2020 19:57:10 +0200 Subject: Fix crash when attempting to read before starting --- src/byte_source.c | 4 ++++ tests/serd_test.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/byte_source.c b/src/byte_source.c index 0b233bc9..90af28ee 100644 --- a/src/byte_source.c +++ b/src/byte_source.c @@ -88,6 +88,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) { if (source->page_size > 1) { diff --git a/tests/serd_test.c b/tests/serd_test.c index 16209c27..82126c0c 100644 --- a/tests/serd_test.c +++ b/tests/serd_test.c @@ -679,6 +679,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"); serd_reader_add_blank_prefix(reader, NULL); -- cgit v1.2.1