From 678261844d162112cc9268e8082be580f7218525 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Mon, 1 Jul 2019 09:15:03 +0200 Subject: Fix null-pointer dereference in restore_unpack Use a seperate variable to iterate over directory children and don't modify n. Otherwise, the chown/chmod code below derefernces a null pointer when trying to access n->name, n->uid and n->gid. Bug found using scan-build. Signed-off-by: David Oberhollenzer --- unpack/restore_fstree.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unpack/restore_fstree.c b/unpack/restore_fstree.c index ab10f5d..455e604 100644 --- a/unpack/restore_fstree.c +++ b/unpack/restore_fstree.c @@ -3,6 +3,7 @@ static int create_node(tree_node_t *n, data_reader_t *data, int flags) { + tree_node_t *c; char *name; int fd; @@ -23,8 +24,8 @@ static int create_node(tree_node_t *n, data_reader_t *data, int flags) if (pushd(n->name)) return -1; - for (n = n->data.dir->children; n != NULL; n = n->next) { - if (create_node(n, data, flags)) + for (c = n->data.dir->children; c != NULL; c = c->next) { + if (create_node(c, data, flags)) return -1; } -- cgit v1.2.3