diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sqfs/dir_reader.c | 10 | ||||
-rw-r--r-- | lib/sqfs/read_tree.c | 10 |
2 files changed, 16 insertions, 4 deletions
diff --git a/lib/sqfs/dir_reader.c b/lib/sqfs/dir_reader.c index e1ff9bc..bae24d5 100644 --- a/lib/sqfs/dir_reader.c +++ b/lib/sqfs/dir_reader.c @@ -235,8 +235,14 @@ int sqfs_dir_reader_find_by_path(sqfs_dir_reader_t *rd, const char *path, return ret; ptr = strchr(path, '/'); - if (ptr == NULL) - ptr = strchrnul(path, '\\'); + if (ptr == NULL) { + ptr = strchr(path, '\\'); + + if (ptr == NULL) { + for (ptr = path; *ptr != '\0'; ++ptr) + ; + } + } do { ret = sqfs_dir_reader_read(rd, &ent); diff --git a/lib/sqfs/read_tree.c b/lib/sqfs/read_tree.c index f9c2a4e..eaf7c16 100644 --- a/lib/sqfs/read_tree.c +++ b/lib/sqfs/read_tree.c @@ -225,8 +225,14 @@ int sqfs_dir_reader_get_full_hierarchy(sqfs_dir_reader_t *rd, goto fail; ptr = strchr(path, '/'); - if (ptr == NULL) - ptr = strchrnul(path, '\\'); + if (ptr == NULL) { + ptr = strchr(path, '\\'); + + if (ptr == NULL) { + for (ptr = path; *ptr != '\0'; ++ptr) + ; + } + } for (;;) { ret = sqfs_dir_reader_read(rd, &ent); |