diff options
Diffstat (limited to 'extras')
-rw-r--r-- | extras/browse.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/extras/browse.c b/extras/browse.c index 1b32135..5b27dc6 100644 --- a/extras/browse.c +++ b/extras/browse.c @@ -29,6 +29,7 @@ static sqfs_data_reader_t *data; static void change_directory(const char *dirname) { sqfs_inode_generic_t *inode; + int ret; if (dirname == NULL || *dirname == '/') { free(working_dir); @@ -38,8 +39,13 @@ static void change_directory(const char *dirname) } if (dirname != NULL) { - sqfs_dir_reader_find_by_path(dr, working_dir, - dirname, &inode); + ret = sqfs_dir_reader_find_by_path(dr, working_dir, + dirname, &inode); + if (ret != 0) { + printf("Error resolving '%s', error code %d\n", + dirname, ret); + return; + } free(working_dir); working_dir = inode; @@ -452,6 +458,8 @@ static void cat_cmd(const char *filename) fwrite(buffer, 1, diff, stdout); offset += diff; } + + free(inode); } /*****************************************************************************/ |