aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-06-21 19:57:10 +0200
committerDavid Robillard <d@drobilla.net>2022-01-13 23:05:18 -0500
commit932da1fc5335003d70caaeeae80f7ec2afb77b8e (patch)
treed55969ae5c04f1321caddb327197345a697e892c
parent60c69f60659b6a07dadb384cd7772a6a3b979dda (diff)
downloadserd-932da1fc5335003d70caaeeae80f7ec2afb77b8e.tar.gz
serd-932da1fc5335003d70caaeeae80f7ec2afb77b8e.tar.bz2
serd-932da1fc5335003d70caaeeae80f7ec2afb77b8e.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 df757376..2e4f66cb 100644
--- a/src/byte_source.c
+++ b/src/byte_source.c
@@ -87,6 +87,10 @@ serd_byte_source_open_source(SerdByteSource* const source,
SerdStatus
serd_byte_source_prepare(SerdByteSource* const 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 41f6aee0..8671a649 100644
--- a/test/test_reader_writer.c
+++ b/test/test_reader_writer.c
@@ -149,6 +149,9 @@ test_reader(const char* path)
SerdReader* reader = serd_reader_new(world, SERD_TURTLE, 0u, 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__)