diff options
author | William Wilgus <wilgus.william@gmail.com> | 2024-06-02 10:37:25 -0400 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2024-06-02 10:41:50 -0400 |
commit | 5c7fbe8f1b5d78bf03c98d72a18ca13e74261e7b (patch) | |
tree | e5576eb3cc4ff0efcd668ce94959f2640e76249e | |
parent | cc67f420f215481ef41ed2bc228fb2b28f7eeb80 (diff) | |
download | rockbox-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.c | 4 |
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; |