]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/skiplist.c
Merge pull request #5590 from qlyoung/fix-nhrp-underflow
[mirror_frr.git] / lib / skiplist.c
index 7acc78f563729e7f32aef1cd4074cedab6376b4e..6efa2c362d9efbcd5ca2c133d204869cae13f8c7 100644 (file)
@@ -60,6 +60,7 @@
 #include "log.h"
 #include "vty.h"
 #include "skiplist.h"
+#include "lib_errors.h"
 
 DEFINE_MTYPE_STATIC(LIB, SKIP_LIST, "Skip List")
 DEFINE_MTYPE_STATIC(LIB, SKIP_LIST_NODE, "Skip Node")
@@ -87,7 +88,7 @@ static struct skiplist *skiplist_last_created; /* debugging hack */
 #endif
 
 
-static int randomLevel()
+static int randomLevel(void)
 {
        register int level = 0;
        register int b;
@@ -182,7 +183,8 @@ int skiplist_insert(register struct skiplist *l, register void *key,
 
        /* DEBUG */
        if (!key) {
-               zlog_err("%s: key is 0, value is %p", __func__, value);
+               flog_err(EC_LIB_DEVELOPMENT, "%s: key is 0, value is %p",
+                        __func__, value);
        }
 
        p = l->header;
@@ -200,6 +202,7 @@ int skiplist_insert(register struct skiplist *l, register void *key,
        }
 
        k = randomLevel();
+       assert(k >= 0);
        if (k > l->level) {
                k = ++l->level;
                update[k] = l->header;
@@ -593,8 +596,8 @@ static void *scramble(int i)
 {
        uintptr_t result;
 
-       result = (i & 0xff) << 24;
-       result |= (i >> 8);
+       result = (unsigned)(i & 0xff) << 24;
+       result |= (unsigned)i >> 8;
 
        return (void *)result;
 }
@@ -605,7 +608,7 @@ void skiplist_test(struct vty *vty)
        struct skiplist *l;
        register int i, k;
        void *keys[sampleSize];
-       void *v;
+       void *v = NULL;
 
        zlog_debug("%s: entry", __func__);