From 217c9706fbb310d309ddb4640f0f72bb7010c845 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Thu, 4 Feb 2010 16:31:09 +0000 Subject: [PATCH] hivexsh: cd command: fix error handling The error behaviour of hivex_node_get_child is subtle, so the 'cd' command wouldn't always report errors correctly. This fixes it. --- hivex/hivexsh.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hivex/hivexsh.c b/hivex/hivexsh.c index ceb1153..39ca634 100644 --- a/hivex/hivexsh.c +++ b/hivex/hivexsh.c @@ -559,10 +559,14 @@ cmd_cd (char *path) continue; } + errno = 0; new_cwd = hivex_node_get_child (h, new_cwd, elem); if (new_cwd == 0) { - fprintf (stderr, _("hivexsh: cd: subkey '%s' not found\n"), - elem); + if (errno) + perror ("hivexsh: cd"); + else + fprintf (stderr, _("hivexsh: cd: subkey '%s' not found\n"), + elem); return -1; } } -- 1.8.3.1