aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/glob.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/glob.cpp b/src/glob.cpp
index 71100b7..486fbce 100644
--- a/src/glob.cpp
+++ b/src/glob.cpp
@@ -41,6 +41,7 @@ Globber::Globber(const gchar *_pattern)
dirname = g_path_get_dirname(_pattern);
dir = g_dir_open(dirname, 0, NULL);
+ /* if dirname does not exist, dir may be NULL */
basename = g_path_get_basename(_pattern);
pattern = g_pattern_spec_new(basename);
@@ -52,6 +53,9 @@ Globber::next(void)
{
const gchar *basename;
+ if (!dir)
+ return NULL;
+
while ((basename = g_dir_read_name(dir)))
if (g_pattern_match_string(pattern, basename))
return g_build_filename(dirname, basename, NIL);