diff options
| author | Adam Weinberger <adamw@FreeBSD.org> | 2014-07-29 15:49:46 +0000 |
|---|---|---|
| committer | Adam Weinberger <adamw@FreeBSD.org> | 2014-07-29 15:49:46 +0000 |
| commit | 5fef74e277a1a8631418cc86635c091fcc79d099 (patch) | |
| tree | 1f91b768812d879efc689dc94c0aa53e7c1ba2fa /www/cgihtml/files/patch-aa | |
| parent | - Add LICENSE (diff) | |
Rename www/ patch-xy patches to reflect the files they modify.
Diffstat (limited to 'www/cgihtml/files/patch-aa')
| -rw-r--r-- | www/cgihtml/files/patch-aa | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/www/cgihtml/files/patch-aa b/www/cgihtml/files/patch-aa deleted file mode 100644 index f208f6cfb91b..000000000000 --- a/www/cgihtml/files/patch-aa +++ /dev/null @@ -1,121 +0,0 @@ -Index: cgi-lib.c -=================================================================== -RCS file: /home/cvs/ringlet/c/contrib/www/cgihtml/cgi-lib.c,v -retrieving revision 1.1.1.1 -retrieving revision 1.6 -diff -u -r1.1.1.1 -r1.6 ---- cgi-lib.c 27 Oct 2003 09:39:04 -0000 1.1.1.1 -+++ cgi-lib.c 27 Oct 2003 12:07:00 -0000 1.6 -@@ -17,6 +17,10 @@ - - #ifdef WINDOWS - #include <io.h> -+#define mktemp _mktemp -+#define snprintf _snprintf -+#else -+#include <unistd.h> - #endif - - #include "cgi-lib.h" -@@ -87,11 +91,11 @@ - - char *get_POST() - { -- unsigned int content_length; -+ size_t content_length; - char *buffer; - - if (CONTENT_LENGTH != NULL) { -- content_length = atoi(CONTENT_LENGTH); -+ content_length = (size_t)strtoull(CONTENT_LENGTH, NULL, 10); - buffer = (char *)malloc(sizeof(char) * content_length + 1); - if (fread(buffer,sizeof(char),content_length,stdin) != content_length) { - /* consistency error. */ -@@ -202,7 +206,7 @@ - - int parse_form_encoded(llist* entries) - { -- long content_length; -+ size_t content_length, fnsize; - entrytype entry; - node* window; - FILE *uploadfile; -@@ -220,7 +224,7 @@ - _fmode = BINARY; /* default all file I/O as binary */ - #endif - if (CONTENT_LENGTH != NULL) -- content_length = atol(CONTENT_LENGTH); -+ content_length = (size_t)strtoull(CONTENT_LENGTH, NULL, 10); - else - return 0; - /* get boundary */ -@@ -241,14 +245,20 @@ - robustness sake. */ - buffer[bytesread] = '\0'; - tempstr = newstr(buffer); -- tempstr += (sizeof(char) * 38); /* 38 is header up to name */ -- entry.name = tempstr; -+ entry.name = strstr(tempstr, "name=\""); -+ if (entry.name == NULL) { -+ free(tempstr); -+ return 0; -+ } -+ entry.name += 6; -+ if (strchr(entry.name, '"') == NULL) { -+ free(tempstr); -+ return 0; -+ } -+ *strchr(entry.name, '"') = '\0'; - entry.value = (char *)malloc(sizeof(char) * BUFSIZ + 1); - buffersize = BUFSIZ; - strcpy(entry.value,""); -- while (*tempstr != '"') -- tempstr++; -- *tempstr = '\0'; - if (strstr(buffer,"filename=\"") != NULL) { - isfile = 1; - tempstr = newstr(buffer); -@@ -258,9 +268,9 @@ - entry.value = (char *) realloc(entry.value, sizeof(char) * - strlen(tempstr)+1); - entry.value = tempstr; -- while (*tempstr != '"') -- tempstr++; -- *tempstr = '\0'; -+ if (strchr(tempstr, '"') == NULL) -+ return 0; -+ *strchr(tempstr, '"') = '\0'; - /* Netscape's Windows browsers handle paths differently from its - UNIX and Mac browsers. It delivers a full path for the uploaded - file (which it shouldn't do), and it uses backslashes rather than -@@ -275,13 +285,12 @@ - } - window = list_insafter(entries,window,entry); - numentries++; -- uploadfname = (char *)malloc(strlen(UPLOADDIR)+strlen(entry.value)+2); --#ifdef WINDOWS -- sprintf(uploadfname,"%s\\%s",UPLOADDIR,entry.value); --#else -- sprintf(uploadfname,"%s/%s",UPLOADDIR,entry.value); --#endif -- if ( (uploadfile = fopen(uploadfname,"w")) == NULL) { -+ fnsize = strlen(UPLOADDIR) + 30; -+ uploadfname = (char *)malloc(fnsize); -+ snprintf(uploadfname,fnsize,"%s/cgihtml-upload-XXXXXX",UPLOADDIR); -+ uploadfname[fnsize - 1] = '\0'; -+ if (mktemp(uploadfname) == NULL || -+ (uploadfile = fopen(uploadfname,"w")) == NULL) { - /* null filename; for now, just don't save info. later, save - to default file */ - isfile = 0; -@@ -529,9 +538,9 @@ - int numcookies = 0; - short NM = 1; - -+ list_create(entries); - if (cookies == NULL) - return 0; -- list_create(entries); - window = entries->head; - len = strlen(cookies); - entry.name = (char *)malloc(sizeof(char) * len + 1); |
