summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2024-06-02 10:37:25 -0400
committerWilliam Wilgus <me.theuser@yahoo.com>2024-06-02 10:41:50 -0400
commit5c7fbe8f1b5d78bf03c98d72a18ca13e74261e7b (patch)
treee5576eb3cc4ff0efcd668ce94959f2640e76249e
parentcc67f420f215481ef41ed2bc228fb2b28f7eeb80 (diff)
downloadrockbox-5c7fbe8f1b.tar.gz
rockbox-5c7fbe8f1b.zip
[coverity] tree.c set_current_file_ex explicitly check strrchr output
the math size_t endpos = filename - path; if (filename && endpos < MAX_PATH - 1) should handle it just fine coverity doesn't think so Change-Id: Ifa0494e56b40c8ab0081ebc771024a45cb24eb76
-rw-r--r--apps/tree.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/apps/tree.c b/apps/tree.c
index f40e6eaa2a..d9d23d277a 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -621,7 +621,7 @@ static void set_current_file_ex(const char *path, const char *filename)
/* gets the directory's name and put it into tc.currdir */
filename = strrchr(path+1,'/');
size_t endpos = filename - path;
- if (endpos < MAX_PATH - 1)
+ if (filename && endpos < MAX_PATH - 1)
{
strmemccpy(tc.currdir, path, endpos + 1);
filename++;
@@ -1039,7 +1039,7 @@ int rockbox_browse(struct browse_context *browse)
{
tc.is_browsing = (browse != NULL);
int ret_val = 0;
- int dirfilter = browse->dirfilter;
+ int dirfilter = tc.is_browsing ? browse->dirfilter : SHOW_ALL;
if (backup_count >= NUM_TC_BACKUP)
return GO_TO_PREVIOUS;