X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfcgi.c;h=aa86e4938df91c263d284a7f9bacc7a98289f49c;hb=879d0eec420fe0fd5ddcd56c8fe62b82a6744edd;hp=67e0b4c03f89b4d6bc421c28a6be2a3f8f44d029;hpb=e448c7a56df8e289c9dbd5b8d87753addd541091;p=swftools.git diff --git a/lib/modules/swfcgi.c b/lib/modules/swfcgi.c index 67e0b4c..aa86e49 100644 --- a/lib/modules/swfcgi.c +++ b/lib/modules/swfcgi.c @@ -9,10 +9,23 @@ Copyright (c) 2001 Rainer Böhme - This file is distributed under the GPL, see file COPYING for details + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -*/ + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#include +#include +#include "../rfxswf.h" #define ishex(x) (((x) >= '0' && (x) <= '9') || ((x) >= 'a' && (x) <= 'f') || ((x) >= 'A' && (x) <= 'F')) @@ -59,15 +72,15 @@ static void swf_cgienv(unsigned char * var) // fprintf(stderr,"%s\n",var); - buf = (unsigned char*)malloc(strlen(var) + sizeof(PREFIX) + 2); + buf = (unsigned char*)rfx_alloc(strlen((const char*)var) + sizeof(PREFIX) + 2); if (!buf) return; - strcpy(buf, PREFIX); + strcpy((char*)buf, (const char*)PREFIX); if (var[0] == '_') - { strcpy(&buf[sizeof(PREFIX)-1], &var[1]); + { strcpy((char*)&buf[sizeof(PREFIX)-1], (const char*)&var[1]); despace = 1; } - else strcpy(&buf[sizeof(PREFIX)-1], var); + else strcpy((char*)&buf[sizeof(PREFIX)-1], (const char*)var); for (c = buf; c[0] ; c++) { if (c[0] == '.') c[0] = '_'; @@ -96,26 +109,26 @@ static void swf_cgienv(unsigned char * var) t[1] = 0; } - if ((oldval = getenv(buf))) - { newval = (unsigned char*)malloc(strlen(oldval) + strlen(buf) + strlen(&c[1]) + 3); + if ((oldval = (unsigned char*)getenv((const char*)buf))) + { newval = (unsigned char*)rfx_alloc(strlen((const char*)oldval) + strlen((const char *)buf) + strlen((const char*)&c[1]) + 3); if (!newval) return; c[0] = '='; - sprintf(newval, "%s#%s", buf, oldval); + sprintf((char*)newval, "%s#%s", buf, oldval); c[0] = 0; - oldval -= strlen(buf) + 1; // skip past VAR= + oldval -= strlen((const char*)buf) + 1; // skip past VAR= } else { c[0] = '='; newval = buf; } - putenv(newval); + putenv((char *)newval); if (oldval) - { free(oldval); - free(buf); + { rfx_free(oldval); + rfx_free(buf); } } @@ -126,7 +139,7 @@ static void swf_scanquery(char * q) while (next) { next = strchr(q, '&'); if (next) next[0] = 0; - swf_cgienv(q); + swf_cgienv((unsigned char*)q); if (next) { next[0] = '&'; q = next+1; @@ -145,7 +158,7 @@ char * swf_postread() if (!buf) return NULL; size = atoi(buf); - buf = (unsigned char*)malloc(size + 1); + buf = (char*)rfx_alloc(size + 1); if (buf) { do { got = fread(buf + sofar, 1, size - sofar, stdin); @@ -164,14 +177,14 @@ void swf_uncgi() if ((query) && strlen(query)) { dupquery = strdup(query); swf_scanquery(dupquery); - free(dupquery); + rfx_free(dupquery); } method = getenv("REQUEST_METHOD"); if ((method) && ! strcmp(method, "POST")) { query = swf_postread(); if ((query)&&(query[0]!=0)) swf_scanquery(query); - free(query); + rfx_free(query); } }