Currently, create_leading_directories() will interpret all parts of paths like 'a/b/c/' as "leading directories". A subsequent call to mkdir for the tail of the path will fail, because the "File already exists." This makes sure trailing slashes are ignored. Signed-off-by: Clemens Buchacher <drizzd@xxxxxx> --- Applies to next. Passes regression tests. sha1_file.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/sha1_file.c b/sha1_file.c index 9ee1ed1..dcb3d22 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -93,12 +93,19 @@ static inline int offset_1st_component(const char *path) int safe_create_leading_directories(char *path) { char *pos = path + offset_1st_component(path); + char *next; struct stat st; while (pos) { pos = strchr(pos, '/'); if (!pos) break; + next = pos + 1; + while (*next == '/') + next++; + if (!*next) + break; + *pos = 0; if (!stat(path, &st)) { /* path exists */ -- 1.6.0.1.275.gc88b6 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html