summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2006-05-14 16:18:00 +0000
committerLennart Poettering <lennart@poettering.net>2006-05-14 16:18:00 +0000
commit45bbb3499929726971d2ab84f468413f39f97cb0 (patch)
treeef2390ccf455f10be1274cf4c3bc613a69c76962 /src
parentd419d87a7306d76e3d3f0b174c6af7d39e0d7837 (diff)
add utf8 validity checking to esound protocol
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@865 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src')
-rw-r--r--src/polypcore/protocol-esound.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/polypcore/protocol-esound.c b/src/polypcore/protocol-esound.c
index 50c8b6b5..aba40856 100644
--- a/src/polypcore/protocol-esound.c
+++ b/src/polypcore/protocol-esound.c
@@ -341,6 +341,8 @@ static int esd_proto_stream_play(struct connection *c, PA_GCC_UNUSED esd_proto_t
strncpy(name, data, sizeof(name));
name[sizeof(name)-1] = 0;
+ CHECK_VALIDITY(pa_utf8_valid(name), "Invalid UTF8 in stream name");
+
pa_client_set_name(c->client, name);
assert(!c->sink_input && !c->input_memblockq);
@@ -423,6 +425,8 @@ static int esd_proto_stream_record(struct connection *c, esd_proto_t request, co
strncpy(name, data, sizeof(name));
name[sizeof(name)-1] = 0;
+ CHECK_VALIDITY(pa_utf8_valid(name), "Invalid UTF8 in stream name.");
+
pa_client_set_name(c->client, name);
assert(!c->output_memblockq && !c->source_output);
@@ -689,6 +693,8 @@ static int esd_proto_sample_cache(struct connection *c, PA_GCC_UNUSED esd_proto_
strcpy(name, SCACHE_PREFIX);
strncpy(name+sizeof(SCACHE_PREFIX)-1, data, ESD_NAME_MAX);
name[sizeof(name)-1] = 0;
+
+ CHECK_VALIDITY(pa_utf8_valid(name), "Invalid UTF8 in sample name.");
assert(!c->scache.memchunk.memblock);
c->scache.memchunk.memblock = pa_memblock_new(sc_length, c->protocol->core->memblock_stat);
@@ -719,6 +725,8 @@ static int esd_proto_sample_get_id(struct connection *c, PA_GCC_UNUSED esd_proto
strncpy(name+sizeof(SCACHE_PREFIX)-1, data, ESD_NAME_MAX);
name[sizeof(name)-1] = 0;
+ CHECK_VALIDITY(pa_utf8_valid(name), "Invalid UTF8 in sample name.");
+
ok = -1;
if ((idx = pa_scache_get_id_by_name(c->protocol->core, name)) != PA_IDXSET_INVALID)
ok = idx + 1;