As Richard reported, dirname('//') returns //. But mkdir_p only stops
when called with '/', resulting in infinite recursion when given a
pathname '//foo/bar'.
Reported-by: richard -rw- weinberger <richard.weinberger@gmail.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
return 0;
}
+static int is_all_slashes(char *path)
+{
+ while (*path && *path == '/')
+ path++;
+ if (*path)
+ return 0;
+ return 1;
+}
+
extern int mkdir_p(char *dir, mode_t mode)
{
int ret;
char *d;
- if (!strcmp(dir, "/"))
+ if (is_all_slashes(dir))
return 0;
d = strdup(dir);