diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-02-28 15:22:17 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-02-28 15:22:17 +0100 |
commit | f5f523c923531c55d397070ba4ee4f8a8f5f8a63 (patch) | |
tree | 31052ce7b8db7ae42685bd0aafaeb2ee9bcd72d1 /extras/browse.c | |
parent | 84b190cac1253d7348a38900fc88d9ad0a0ff41c (diff) |
Minor fix in file browser demo
- Make sure to release the inode returne by the dir reader
- Check the path resolution return code in change_directory
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'extras/browse.c')
-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); } /*****************************************************************************/ |