]> code.delx.au - pulseaudio/blobdiff - src/pulse/proplist.c
Merge branch 'master' of git://0pointer.de/pulseaudio into dbus-work
[pulseaudio] / src / pulse / proplist.c
index 4f0d6a6de99b2cb9036e02b36244c5d9023c61ec..faa98b79e4517aa419fc1d28742981405cb14902 100644 (file)
@@ -251,7 +251,7 @@ int pa_proplist_set(pa_proplist *p, const char *key, const void *data, size_t nb
 
     pa_assert(p);
     pa_assert(key);
-    pa_assert(data);
+    pa_assert(data || nbytes == 0);
 
     if (!property_name_valid(key))
         return -1;
@@ -264,7 +264,8 @@ int pa_proplist_set(pa_proplist *p, const char *key, const void *data, size_t nb
         pa_xfree(prop->value);
 
     prop->value = pa_xmalloc(nbytes+1);
-    memcpy(prop->value, data, nbytes);
+    if (nbytes > 0)
+        memcpy(prop->value, data, nbytes);
     ((char*) prop->value)[nbytes] = 0;
     prop->nbytes = nbytes;
 
@@ -690,6 +691,9 @@ int pa_proplist_equal(pa_proplist *a, pa_proplist *b) {
     pa_assert(a);
     pa_assert(b);
 
+    if (a == b)
+        return 1;
+
     if (pa_proplist_size(a) != pa_proplist_size(b))
         return 0;