diff options
author | jorton <jorton@13f79535-47bb-0310-9956-ffa450edef68> | 2005-09-24 22:27:18 +0000 |
---|---|---|
committer | jorton <jorton@13f79535-47bb-0310-9956-ffa450edef68> | 2005-09-24 22:27:18 +0000 |
commit | 825484e638ce04c343c7f7d5f96fe109f03f51f9 (patch) | |
tree | 2e183b6c56e811ffae881455333750e82ade1990 /file_io | |
parent | cc7e151cd517e31f5ee1af0820ab182f7ff356ae (diff) | |
download | libapr-825484e638ce04c343c7f7d5f96fe109f03f51f9.tar.gz |
Merge r291339 from trunk:
* file_io/unix/dir.c (apr_dir_make_recursive): Fix infinite recursion
if mkdir fails for all path components.
* test/testdir.c (test_rmkdir_nocwd): Add test case.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x@291341 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'file_io')
-rw-r--r-- | file_io/unix/dir.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/file_io/unix/dir.c b/file_io/unix/dir.c index 86bd43761..d6f69a4c7 100644 --- a/file_io/unix/dir.c +++ b/file_io/unix/dir.c @@ -276,6 +276,11 @@ apr_status_t apr_dir_make_recursive(const char *path, apr_fileperms_t perm, char *dir; dir = path_remove_last_component(path, pool); + /* If there is no path left, give up. */ + if (dir[0] == '\0') { + return apr_err; + } + apr_err = apr_dir_make_recursive(dir, perm, pool); if (!apr_err) |