v2: zero the update array instead of checking the return value. SLLocate returns NULL both on failure and if the element is greater than everything in the list
Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu> --- xf86drmSL.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xf86drmSL.c b/xf86drmSL.c index acddb54..cf588ac 100644 --- a/xf86drmSL.c +++ b/xf86drmSL.c @@ -264,12 +264,14 @@ int drmSLLookupNeighbors(void *l, unsigned long key, unsigned long *next_key, void **next_value) { SkipListPtr list = (SkipListPtr)l; - SLEntryPtr update[SL_MAX_LEVEL + 1]; + SLEntryPtr update[SL_MAX_LEVEL + 1] = {0}; int retcode = 0; + SLLocate(list, key, update); + *prev_key = *next_key = key; *prev_value = *next_value = NULL; - + if (update[0]) { *prev_key = update[0]->key; *prev_value = update[0]->value; -- 2.1.0