]> granicus.if.org Git - apache/commitdiff
aboid NULL refs
authorJim Jagielski <jim@apache.org>
Fri, 1 Mar 2013 20:13:39 +0000 (20:13 +0000)
committerJim Jagielski <jim@apache.org>
Fri, 1 Mar 2013 20:13:39 +0000 (20:13 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1451705 13f79535-47bb-0310-9956-ffa450edef68

server/skiplist.c

index f79a6f9cc39b1761bf1d8af6c0c932767ba8ae4a..a6950d511ec7ff7904f3116a35da3b85bff89afb 100644 (file)
@@ -229,7 +229,7 @@ void *ap_skiplist_find_compare(ap_skiplist *sli, void *data,
         sl = (ap_skiplist *) m->data;
     }
     skiplisti_find_compare(sl, data, iter, sl->comparek);
-    return (*iter) ? ((*iter)->data) : (*iter);
+    return (iter && *iter) ? ((*iter)->data) : NULL;
 }
 
 
@@ -262,7 +262,7 @@ ap_skiplistnode *ap_skiplist_insert(ap_skiplist *sl, void *data)
 ap_skiplistnode *ap_skiplist_insert_compare(ap_skiplist *sl, void *data,
                                       ap_skiplist_compare comp)
 {
-    ap_skiplistnode *m, *p, *tmp, *ret, **stack;
+    ap_skiplistnode *m, *p, *tmp, *ret = NULL, **stack;
     int nh = 1, ch, stacki;
     if (!sl->top) {
         sl->height = 1;
@@ -381,6 +381,7 @@ ap_skiplistnode *ap_skiplist_insert_compare(ap_skiplist *sl, void *data,
     else {
         /* sl->size++; */
     }
+    sl->size++;
     return ret;
 }
 
@@ -489,7 +490,7 @@ void ap_skiplist_remove_all(ap_skiplist *sl, ap_skiplist_freefunc myfree)
     m = sl->bottom;
     while (m) {
         p = m->next;
-        if (myfree && p->data)
+        if (p && myfree && p->data)
             myfree(p->data);
         while (m) {
             u = m->up;