# HG changeset patch # User Mike Becker # Date 1513119534 -3600 # Node ID b9c6e0be577462a53e93ee7e6f6683a6f890ca46 # Parent 0b03aa8fb838f9d90017825dfee93becee0df343 fixes infinite loop when trying to overwrite a collection with a regular file diff -r 0b03aa8fb838 -r b9c6e0be5774 dav/main.c --- a/dav/main.c Tue Dec 12 23:36:47 2017 +0100 +++ b/dav/main.c Tue Dec 12 23:58:54 2017 +0100 @@ -922,6 +922,15 @@ } else if(res->iscollection) { // TODO: free res char *newpath = util_concat_path(path, name); + + if (!strcmp(path, newpath)) { + // TODO: free res + fprintf(stderr, "Cannot put file, because a collection with " + "that name already exists.\n"); + free(newpath); + return -1; + } + path = newpath; res = dav_resource_new(sn, path); free(newpath);