diff --git a/mongoose.c b/mongoose.c index 8ba4466e..6252e06f 100644 --- a/mongoose.c +++ b/mongoose.c @@ -4232,9 +4232,11 @@ int mg_upload(struct mg_connection *conn, const char *destination_dir) { // there is no other thread can save into the same file simultaneously. fp = NULL; // Construct destination file name. Do not allow paths to have slashes. - if ((s = strrchr(fname, '/')) == NULL) { - s = fname; + if ((s = strrchr(fname, '/')) == NULL && + (s = strrchr(fname, '\\')) == NULL) { + s = fname; } + // Open file in binary mode. TODO: set an exclusive lock. snprintf(path, sizeof(path), "%s/%s", destination_dir, s); if ((fp = fopen(path, "wb")) == NULL) {