aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/decoder_api.c3
-rw-r--r--src/input_stream.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/decoder_api.c b/src/decoder_api.c
index 08e6b1956..0aca4da95 100644
--- a/src/decoder_api.c
+++ b/src/decoder_api.c
@@ -106,6 +106,9 @@ size_t decoder_read(struct decoder *decoder,
assert(is != NULL);
assert(buffer != NULL);
+ if (length == 0)
+ return 0;
+
while (true) {
/* XXX don't allow decoder==NULL */
if (decoder != NULL &&
diff --git a/src/input_stream.c b/src/input_stream.c
index 86c0b9246..be547912e 100644
--- a/src/input_stream.c
+++ b/src/input_stream.c
@@ -26,6 +26,7 @@
#endif
#include <glib.h>
+#include <assert.h>
static const struct input_plugin *const input_plugins[] = {
&input_plugin_file,
@@ -84,6 +85,9 @@ input_stream_seek(struct input_stream *is, off_t offset, int whence)
size_t
input_stream_read(struct input_stream *is, void *ptr, size_t size)
{
+ assert(ptr != NULL);
+ assert(size > 0);
+
return is->plugin->read(is, ptr, size);
}