aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-11-13 11:58:17 +0100
committerDavid Robillard <d@drobilla.net>2020-11-13 12:53:28 +0100
commitf63257a60cda79963ba7d046f52b66c3b13e2c9a (patch)
tree439d49161e6ed1eb1f5dbd4079fd7b3530b5e2bd
parent353b92d13d3ab6276998239c827287151e16bc8d (diff)
downloadserd-f63257a60cda79963ba7d046f52b66c3b13e2c9a.tar.gz
serd-f63257a60cda79963ba7d046f52b66c3b13e2c9a.tar.bz2
serd-f63257a60cda79963ba7d046f52b66c3b13e2c9a.zip
Improve add and chop prefix functions when given empty strings
-rw-r--r--src/reader.c9
-rw-r--r--src/writer.c9
2 files changed, 10 insertions, 8 deletions
diff --git a/src/reader.c b/src/reader.c
index 5d33e45d..fd859bf8 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -245,14 +245,15 @@ serd_reader_get_handle(const SerdReader* reader)
}
void
-serd_reader_add_blank_prefix(SerdReader* reader,
- const uint8_t* prefix)
+serd_reader_add_blank_prefix(SerdReader* reader, const uint8_t* prefix)
{
free(reader->bprefix);
reader->bprefix_len = 0;
reader->bprefix = NULL;
- if (prefix) {
- reader->bprefix_len = strlen((const char*)prefix);
+
+ const size_t prefix_len = prefix ? strlen((const char*)prefix) : 0;
+ if (prefix_len) {
+ reader->bprefix_len = prefix_len;
reader->bprefix = (uint8_t*)malloc(reader->bprefix_len + 1);
memcpy(reader->bprefix, prefix, reader->bprefix_len + 1);
}
diff --git a/src/writer.c b/src/writer.c
index 5c84b950..c821d904 100644
--- a/src/writer.c
+++ b/src/writer.c
@@ -903,14 +903,15 @@ serd_writer_set_error_sink(SerdWriter* writer,
}
void
-serd_writer_chop_blank_prefix(SerdWriter* writer,
- const uint8_t* prefix)
+serd_writer_chop_blank_prefix(SerdWriter* writer, const uint8_t* prefix)
{
free(writer->bprefix);
writer->bprefix_len = 0;
writer->bprefix = NULL;
- if (prefix) {
- writer->bprefix_len = strlen((const char*)prefix);
+
+ const size_t prefix_len = prefix ? strlen((const char*)prefix) : 0;
+ if (prefix_len) {
+ writer->bprefix_len = prefix_len;
writer->bprefix = (uint8_t*)malloc(writer->bprefix_len + 1);
memcpy(writer->bprefix, prefix, writer->bprefix_len + 1);
}