From 97776d7ca967a9e304caa3e83bda536e667698ad Mon Sep 17 00:00:00 2001 From: Harry Jeffery Date: Wed, 11 Nov 2015 12:21:56 +0000 Subject: Fix navigator path recursion infinite loop --- navigator.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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); } -- cgit v1.2.3