]> git.meshlink.io Git - catta/commitdiff
* fix string list serialization
authorLennart Poettering <lennart@poettering.net>
Thu, 25 Aug 2005 19:36:16 +0000 (19:36 +0000)
committerLennart Poettering <lennart@poettering.net>
Thu, 25 Aug 2005 19:36:16 +0000 (19:36 +0000)
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@447 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe

avahi-common/strlst-test.c
avahi-common/strlst.c

index b725fa7fd1bdd5fa54cb38b976143356f096bac3..abca86d9bc73a728ef5133a786d2af39bee83ca8 100644 (file)
@@ -53,8 +53,10 @@ int main(int argc, char *argv[]) {
     t = avahi_string_list_to_string(a);
     printf("--%s--\n", t);
     avahi_free(t);
-
+    
+    n = avahi_string_list_serialize(a, NULL, 0);
     size = avahi_string_list_serialize(a, data, sizeof(data));
+    assert(size == n);
 
     printf("%u\n", size);
 
@@ -112,8 +114,10 @@ int main(int argc, char *argv[]) {
     avahi_string_list_free(a);
     avahi_string_list_free(b);
 
+    n = avahi_string_list_serialize(NULL, NULL, 0);
     size = avahi_string_list_serialize(NULL, data, sizeof(data));
     assert(size == 1);
+    assert(size == n);
 
     a = avahi_string_list_parse(data, size);
     assert(!a);
index db5ac594ea06a66242beaff0d74b755b7589ff61..0c61857b5753dbc62a970417be34fa55542aef21 100644 (file)
@@ -200,14 +200,19 @@ size_t avahi_string_list_serialize(AvahiStringList *l, void *data, size_t size)
     } else {
         AvahiStringList *n;
 
-        for (n = l; n; n = n->next) {
-            size_t k;
-        
-            k = n->size;
-            if (k > 255)
-                k = 255;
-            
-            used += 1+k;
+        if (!l)
+            used = 1;
+        else {
+
+            for (n = l; n; n = n->next) {
+                size_t k;
+                
+                k = n->size;
+                if (k > 255)
+                    k = 255;
+                
+                used += 1+k;
+            }
         }
     }