diff options
author | Harry Jeffery <harry@exec64.co.uk> | 2015-11-11 12:21:56 +0000 |
---|---|---|
committer | Harry Jeffery <harry@exec64.co.uk> | 2015-11-11 12:21:56 +0000 |
commit | 97776d7ca967a9e304caa3e83bda536e667698ad (patch) | |
tree | 5ca07eb64491ff25ba4a450f7add737c65923bac | |
parent | c374d646a1da74ebb559cfcb89dc73932092e7f9 (diff) | |
download | imv-97776d7ca967a9e304caa3e83bda536e667698ad.tar.gz |
Fix navigator path recursion infinite loop
-rw-r--r-- | navigator.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/navigator.c b/navigator.c index ccfeb51..e5babdb 100644 --- a/navigator.c +++ b/navigator.c @@ -78,6 +78,10 @@ void imv_navigator_add_path(struct imv_navigator *nav, const char *path) if(d) { struct dirent *dir; while((dir = readdir(d)) != NULL) { + if(strcmp(dir->d_name, "..") == 0 || + strcmp(dir->d_name, ".") == 0) { + continue; + } snprintf(path_buf, sizeof(path_buf), "%s/%s", path, dir->d_name); add_item(nav, path_buf); } @@ -97,6 +101,10 @@ void imv_navigator_add_path_recursive(struct imv_navigator *nav, const char *pat if(d) { struct dirent *dir; while((dir = readdir(d)) != NULL) { + if(strcmp(dir->d_name, "..") == 0 || + strcmp(dir->d_name, ".") == 0) { + continue; + } snprintf(path_buf, sizeof(path_buf), "%s/%s", path, dir->d_name); imv_navigator_add_path_recursive(nav, path_buf); } |