]> code.delx.au - pulseaudio/commitdiff
native: don't hit assert when user uploads zero-sized sample
authorLennart Poettering <lennart@poettering.net>
Wed, 1 Jul 2009 12:25:13 +0000 (14:25 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 1 Jul 2009 12:25:13 +0000 (14:25 +0200)
src/pulsecore/protocol-native.c

index cda7ef5797da0dfa5ac059752c689e86d746b650..96184bd28453293a85a4e14c71d98057d77f5639 100644 (file)
@@ -2689,7 +2689,9 @@ static void command_finish_upload_stream(pa_pdispatch *pd, uint32_t command, uin
     CHECK_VALIDITY(c->pstream, s, tag, PA_ERR_NOENTITY);
     CHECK_VALIDITY(c->pstream, upload_stream_isinstance(s), tag, PA_ERR_NOENTITY);
 
-    if (pa_scache_add_item(c->protocol->core, s->name, &s->sample_spec, &s->channel_map, &s->memchunk, s->proplist, &idx) < 0)
+    if (!s->memchunk.memblock)
+        pa_pstream_send_error(c->pstream, tag, PA_ERR_TOOLARGE);
+    else if (pa_scache_add_item(c->protocol->core, s->name, &s->sample_spec, &s->channel_map, &s->memchunk, s->proplist, &idx) < 0)
         pa_pstream_send_error(c->pstream, tag, PA_ERR_INTERNAL);
     else
         pa_pstream_send_simple_ack(c->pstream, tag);