From: <tom...@us...> - 2003-10-10 16:33:07
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1:/tmp/cvs-serv22278 Modified Files: qmailadmin.c Log Message: Check result of getenv() so we don't strdup(NULL) and segfault. (possible fix for 800326) Index: qmailadmin.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/qmailadmin.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qmailadmin.c 10 Sep 2003 21:38:42 -0000 1.1.1.1 +++ qmailadmin.c 10 Oct 2003 16:33:04 -0000 1.2 @@ -121,13 +121,13 @@ memset(TmpBuf2, 0, sizeof(TmpBuf2)); for(j=0,i=5;pi[i]!=0&&j<99;++i,++j) TmpBuf2[j] = pi[i]; rm = getenv("REQUEST_METHOD"); - rm = strdup(rm); + rm = (rm == NULL ? "" : strdup(rm)); if ( strncmp(rm , "POST", 4) == 0 ) { get_cgi(); } else { - TmpCGI = (char *)getenv("QUERY_STRING"); - TmpCGI = strdup(TmpCGI); + TmpCGI = getenv("QUERY_STRING"); + TmpCGI = (TmpCGI == NULL ? "" : strdup(TmpCGI)); } GetValue(TmpCGI, Username, "user=", sizeof(Username)); @@ -162,13 +162,13 @@ memset(TmpBuf2, 0, sizeof(TmpBuf2)); for(j=0,i=6;pi[i]!=0&&j<99;++i,++j) TmpBuf2[j] = pi[i]; rm = getenv("REQUEST_METHOD"); - rm = strdup(rm); + rm = (rm == NULL ? "" : strdup(rm)); if ( strncmp(rm , "POST", 4) == 0 ) { get_cgi(); } else { - TmpCGI = (char *)getenv("QUERY_STRING"); - TmpCGI = strdup(TmpCGI); + TmpCGI = getenv("QUERY_STRING"); + TmpCGI = (TmpCGI == NULL ? "" : strdup(TmpCGI)); } GetValue(TmpCGI, Username, "user=", sizeof(Username)); @@ -198,8 +198,8 @@ if ( strncmp(rm , "POST", 4) == 0 ) { get_cgi(); } else { - TmpCGI = (char *)getenv("QUERY_STRING"); - TmpCGI = strdup(TmpCGI); + TmpCGI = getenv("QUERY_STRING"); + TmpCGI = (TmpCGI == NULL ? "" : strdup(TmpCGI)); } GetValue(TmpCGI, Username, "username=", sizeof(Username)); |