Module Name:    src
Committed By:   riastradh
Date:           Fri Aug 22 17:17:02 UTC 2014

Modified Files:
        src/common/lib/libc/gen: rb.c

Log Message:
Fix failure case in rb_tree_find_node_leq/geq.

Return NULL, not `NULL - offset'.

XXX pullup to netbsd-5, netbsd-6, netbsd-7


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/common/lib/libc/gen/rb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/common/lib/libc/gen/rb.c
diff -u src/common/lib/libc/gen/rb.c:1.11 src/common/lib/libc/gen/rb.c:1.12
--- src/common/lib/libc/gen/rb.c:1.11	Mon Jun 20 09:11:16 2011
+++ src/common/lib/libc/gen/rb.c	Fri Aug 22 17:17:02 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rb.c,v 1.11 2011/06/20 09:11:16 mrg Exp $	*/
+/*	$NetBSD: rb.c,v 1.12 2014/08/22 17:17:02 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -39,10 +39,10 @@
 #else
 #define KASSERT(s)	do { } while (/*CONSTCOND*/ 0)
 #endif
-__RCSID("$NetBSD: rb.c,v 1.11 2011/06/20 09:11:16 mrg Exp $");
+__RCSID("$NetBSD: rb.c,v 1.12 2014/08/22 17:17:02 riastradh Exp $");
 #else
 #include <lib/libkern/libkern.h>
-__KERNEL_RCSID(0, "$NetBSD: rb.c,v 1.11 2011/06/20 09:11:16 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rb.c,v 1.12 2014/08/22 17:17:02 riastradh Exp $");
 #endif
 
 #ifdef _LIBC
@@ -145,7 +145,7 @@ rb_tree_find_node_geq(struct rb_tree *rb
 		parent = parent->rb_nodes[diff < 0];
 	}
 
-	return RB_NODETOITEM(rbto, last);
+	return (last == NULL ? NULL : RB_NODETOITEM(rbto, last));
 }
 
 void *
@@ -166,7 +166,7 @@ rb_tree_find_node_leq(struct rb_tree *rb
 		parent = parent->rb_nodes[diff < 0];
 	}
 
-	return RB_NODETOITEM(rbto, last);
+	return (last == NULL ? NULL : RB_NODETOITEM(rbto, last));
 }
 
 void *

Reply via email to