From 5df427deb30345ad92b6f387e3a39011f7d978ec Mon Sep 17 00:00:00 2001 From: Jim Jagielski Date: Fri, 1 Mar 2013 20:13:39 +0000 Subject: [PATCH] aboid NULL refs git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1451705 13f79535-47bb-0310-9956-ffa450edef68 --- server/skiplist.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/skiplist.c b/server/skiplist.c index f79a6f9cc3..a6950d511e 100644 --- a/server/skiplist.c +++ b/server/skiplist.c @@ -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; -- 2.40.0