Commit a50a52ca authored by Sergey Lyubka's avatar Sergey Lyubka

Fixed #259

parent 50371ef3
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
FILE *mg_upload(struct mg_connection *conn, const char *destination_dir, FILE *mg_upload(struct mg_connection *conn, const char *destination_dir,
char *path, int path_len) { char *path, int path_len) {
const char *content_type_header, *boundary_start; const char *content_type_header, *boundary_start;
char *buf, fname[1024], boundary[100], *s; char *buf, fname[1024], boundary[100], *s, *p;
int bl, n, i, j, headers_len, boundary_len, eof, buf_len, to_read, len = 0; int bl, n, i, j, headers_len, boundary_len, eof, buf_len, to_read, len = 0;
FILE *fp; FILE *fp;
...@@ -89,10 +89,9 @@ FILE *mg_upload(struct mg_connection *conn, const char *destination_dir, ...@@ -89,10 +89,9 @@ FILE *mg_upload(struct mg_connection *conn, const char *destination_dir,
fp = NULL; fp = NULL;
// Construct destination file name. Do not allow paths to have slashes. // Construct destination file name. Do not allow paths to have slashes.
if ((s = strrchr(fname, '/')) == NULL && s = fname;
(s = strrchr(fname, '\\')) == NULL) { if ((p = strrchr(fname, '/')) != NULL && p > s) s = p;
s = fname; if ((p = strrchr(fname, '\\')) != NULL && p > s) s = p;
}
// Open file in binary mode. TODO: set an exclusive lock. // Open file in binary mode. TODO: set an exclusive lock.
snprintf(path, path_len, "%s/%s", destination_dir, s); snprintf(path, path_len, "%s/%s", destination_dir, s);
......
...@@ -3402,7 +3402,7 @@ done: ...@@ -3402,7 +3402,7 @@ done:
FILE *mg_upload(struct mg_connection *conn, const char *destination_dir, FILE *mg_upload(struct mg_connection *conn, const char *destination_dir,
char *path, int path_len) { char *path, int path_len) {
const char *content_type_header, *boundary_start; const char *content_type_header, *boundary_start;
char *buf, fname[1024], boundary[100], *s; char *buf, fname[1024], boundary[100], *s, *p;
int bl, n, i, j, headers_len, boundary_len, eof, buf_len, to_read, len = 0; int bl, n, i, j, headers_len, boundary_len, eof, buf_len, to_read, len = 0;
FILE *fp; FILE *fp;
...@@ -3488,10 +3488,9 @@ FILE *mg_upload(struct mg_connection *conn, const char *destination_dir, ...@@ -3488,10 +3488,9 @@ FILE *mg_upload(struct mg_connection *conn, const char *destination_dir,
fp = NULL; fp = NULL;
// Construct destination file name. Do not allow paths to have slashes. // Construct destination file name. Do not allow paths to have slashes.
if ((s = strrchr(fname, '/')) == NULL && s = fname;
(s = strrchr(fname, '\\')) == NULL) { if ((p = strrchr(fname, '/')) != NULL && p > s) s = p;
s = fname; if ((p = strrchr(fname, '\\')) != NULL && p > s) s = p;
}
// Open file in binary mode. TODO: set an exclusive lock. // Open file in binary mode. TODO: set an exclusive lock.
snprintf(path, path_len, "%s/%s", destination_dir, s); snprintf(path, path_len, "%s/%s", destination_dir, s);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment