[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH] libc: Segfault in tree_prev/next() bei leerem Baum gefixt



! libc: Wenn der Baum keine Wurzel hat, muss gleich NULL zurueckgegeben
  werden, sonst gibt es einen Nullpointerzugriff.

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/lib/collections/tree.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/lib/collections/tree.c b/src/lib/collections/tree.c
index 87dbcea..d565fa8 100644
--- a/src/lib/collections/tree.c
+++ b/src/lib/collections/tree.c
@@ -473,6 +473,9 @@ void* tree_prev(tree_t* tree, void* node)
 
     if (node == NULL) {
         current = tree->root;
+        if (current == NULL) {
+            return NULL;
+        }
     } else {
 
         // Irgendwo mitten im Baum ist es einfach, den Vorgaenger zu finden:
@@ -517,6 +520,9 @@ void* tree_next(tree_t* tree, void* node)
 
     if (node == NULL) {
         current = tree->root;
+        if (current == NULL) {
+            return NULL;
+        }
     } else {
         // Das ist im Prinzip ein tree_prev mit links und rechts vertauscht
 
-- 
1.6.0.2