You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-dev@httpd.apache.org by Joe Schaefer <jo...@yahoo.com> on 2009/01/13 21:37:49 UTC

Re: svn commit: r734232 - /httpd/apreq/trunk/library/module_cgi.c

After this commit all I'm left with is the following issue
that prevents compilation on my machine:

% make
...
 gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/home/joe/httpd/trunk/prefork/include/apr-1 -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -fno-strict-aliasing -Werror -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -Wcast-qual -Wfloat-equal -Wshadow -Wpointer-arith -Wbad-function-cast -Wsign-compare -Waggregate-return -Wmissing-noreturn -Wmissing-format-attribute -Wpacked -Wredundant-decls -Wnested-externs -Wdisabled-optimization -Wno-long-long -Wendif-labels -Wcast-align -c module_cgi.c -MT module_cgi.lo -MD -MP -MF .deps/module_cgi.TPlo  -fPIC -DPIC -o .libs/module_cgi.o
cc1: warnings being treated as errors
module_cgi.c: In function 'apreq_handle_cgi':
module_cgi.c:1005: warning: reading through null pointer (argument 3)
module_cgi.c:1005: warning: format '%s' expects type 'char *', but argument 3 has type 'void *'
make[2]: *** [module_cgi.lo] Error 1


line 1005 has:         sprintf(buf, "%s", NULL);

which can't be right, can it?  What do you really
want to write to buf, Issac?




----- Original Message ----
> From: "joes@apache.org" <jo...@apache.org>
> To: apreq-cvs@httpd.apache.org
> Sent: Tuesday, January 13, 2009 3:31:53 PM
> Subject: svn commit: r734232 - /httpd/apreq/trunk/library/module_cgi.c
> 
> Author: joes
> Date: Tue Jan 13 12:31:48 2009
> New Revision: 734232
> 
> URL: http://svn.apache.org/viewvc?rev=734232&view=rev
> Log:
> more gcc warnings evaded
> 
> Modified:
>     httpd/apreq/trunk/library/module_cgi.c
> 
> Modified: httpd/apreq/trunk/library/module_cgi.c
> URL: 
> http://svn.apache.org/viewvc/httpd/apreq/trunk/library/module_cgi.c?rev=734232&r1=734231&r2=734232&view=diff
> ==============================================================================
> --- httpd/apreq/trunk/library/module_cgi.c (original)
> +++ httpd/apreq/trunk/library/module_cgi.c Tue Jan 13 12:31:48 2009
> @@ -230,7 +230,7 @@
>              }
>          case '\\': /* Check next character for escape sequence 
>                      * (just ignore it for now) */
> -            *cprompt++;
> +            (void)*cprompt++;
>              /* Fallthrough */
> 
>          default:      
> @@ -243,7 +243,7 @@
>      apr_file_printf(req->sout, "%s", buf[0]);
>      apr_file_gets(buf[0], MAX_BUFFER_SIZE, req->sin);
>      chomp(buf[0]);
> -    if (stricmp(buf[0], "")) {
> +    if (strcmp(buf[0], "")) {
> /*        if (strcmp(buf[0], nullstr)) */
>              return apr_pstrdup(handle->pool, buf[0]);
> /*        return NULL; */
> @@ -597,7 +597,7 @@
>      else
>          t = req->jar;
> 
> -    val = (char *)apr_table_get(t, name);
> +    val = apr_table_get(t, name);
>      if (val == NULL) {
>          if (!req->interactive_mode) {
>              return NULL;



      

Re: svn commit: r734232 - /httpd/apreq/trunk/library/module_cgi.c

Posted by Issac Goldstand <ma...@beamartyr.net>.
Joe Schaefer wrote:
> ----- Original Message ----
>
>   
>> From: Issac Goldstand <ma...@beamartyr.net>
>> To: Joe Schaefer <jo...@yahoo.com>
>> Cc: apreq-dev@httpd.apache.org
>> Sent: Tuesday, January 13, 2009 3:53:53 PM
>> Subject: Re: svn commit: r734232 - /httpd/apreq/trunk/library/module_cgi.c
>>
>> A null char.  As I mentioned in the commit message to deal with this,
>> I'm not quite sure why I went through such pains to store a null
>> character and couldn't just use NULL or (char) 0 in the code where it
>> was needed.
>>
>> All I remember is some foggy issue with wide characters on win32, but I
>> don't remember exactly what (and no longer have the original development
>> environment for it)
>>
>> In any case, it passes on maintainer mode now, and I hope to get a
>> testbed up for win32/vc6 and win32/vc9 (bill, if you're listening, do
>> you generally test against vc8 or vc9?), and maybe even sparc solaris
>> 10, sunstudio 12 (if I can figure out how to set that up in the next few
>> days - I need such a compilation environment for work anyway, so may as
>> well test out new features there :))
>>
>> Sorry for the messy commit :-/
>>
>>   Issac
>>
>>
>> PS, a basic test of the patch is running modules/test_cgi after make
>> test.  If someone can think of a clever way to test this (which needs
>> stdin input) from Test::More, Apache::Test and friends, I can try to get
>> better unit-testing in place, too
>>     
>
> I like it already, cool how it prompts exactly for the desired params.
>   
Yeah, but it's still full of bugs, like how to tell it to not have a
param (esp if I add the API for setting default values for params)

Re: svn commit: r734232 - /httpd/apreq/trunk/library/module_cgi.c

Posted by Joe Schaefer <jo...@yahoo.com>.
----- Original Message ----

> From: Issac Goldstand <ma...@beamartyr.net>
> To: Joe Schaefer <jo...@yahoo.com>
> Cc: apreq-dev@httpd.apache.org
> Sent: Tuesday, January 13, 2009 3:53:53 PM
> Subject: Re: svn commit: r734232 - /httpd/apreq/trunk/library/module_cgi.c
> 
> A null char.  As I mentioned in the commit message to deal with this,
> I'm not quite sure why I went through such pains to store a null
> character and couldn't just use NULL or (char) 0 in the code where it
> was needed.
> 
> All I remember is some foggy issue with wide characters on win32, but I
> don't remember exactly what (and no longer have the original development
> environment for it)
> 
> In any case, it passes on maintainer mode now, and I hope to get a
> testbed up for win32/vc6 and win32/vc9 (bill, if you're listening, do
> you generally test against vc8 or vc9?), and maybe even sparc solaris
> 10, sunstudio 12 (if I can figure out how to set that up in the next few
> days - I need such a compilation environment for work anyway, so may as
> well test out new features there :))
> 
> Sorry for the messy commit :-/
> 
>   Issac
> 
> 
> PS, a basic test of the patch is running modules/test_cgi after make
> test.  If someone can think of a clever way to test this (which needs
> stdin input) from Test::More, Apache::Test and friends, I can try to get
> better unit-testing in place, too

I like it already, cool how it prompts exactly for the desired params.


      

Re: svn commit: r734232 - /httpd/apreq/trunk/library/module_cgi.c

Posted by Issac Goldstand <ma...@beamartyr.net>.
A null char.  As I mentioned in the commit message to deal with this,
I'm not quite sure why I went through such pains to store a null
character and couldn't just use NULL or (char) 0 in the code where it
was needed.

All I remember is some foggy issue with wide characters on win32, but I
don't remember exactly what (and no longer have the original development
environment for it)

In any case, it passes on maintainer mode now, and I hope to get a
testbed up for win32/vc6 and win32/vc9 (bill, if you're listening, do
you generally test against vc8 or vc9?), and maybe even sparc solaris
10, sunstudio 12 (if I can figure out how to set that up in the next few
days - I need such a compilation environment for work anyway, so may as
well test out new features there :))

Sorry for the messy commit :-/

  Issac


PS, a basic test of the patch is running modules/test_cgi after make
test.  If someone can think of a clever way to test this (which needs
stdin input) from Test::More, Apache::Test and friends, I can try to get
better unit-testing in place, too

Joe Schaefer wrote:
> After this commit all I'm left with is the following issue
> that prevents compilation on my machine:
>
> % make
> ...
>  gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/home/joe/httpd/trunk/prefork/include/apr-1 -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -fno-strict-aliasing -Werror -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -Wcast-qual -Wfloat-equal -Wshadow -Wpointer-arith -Wbad-function-cast -Wsign-compare -Waggregate-return -Wmissing-noreturn -Wmissing-format-attribute -Wpacked -Wredundant-decls -Wnested-externs -Wdisabled-optimization -Wno-long-long -Wendif-labels -Wcast-align -c module_cgi.c -MT module_cgi.lo -MD -MP -MF .deps/module_cgi.TPlo  -fPIC -DPIC -o .libs/module_cgi.o
> cc1: warnings being treated as errors
> module_cgi.c: In function 'apreq_handle_cgi':
> module_cgi.c:1005: warning: reading through null pointer (argument 3)
> module_cgi.c:1005: warning: format '%s' expects type 'char *', but argument 3 has type 'void *'
> make[2]: *** [module_cgi.lo] Error 1
>
>
> line 1005 has:         sprintf(buf, "%s", NULL);
>
> which can't be right, can it?  What do you really
> want to write to buf, Issac?
>
>
>
>
> ----- Original Message ----
>   
>> From: "joes@apache.org" <jo...@apache.org>
>> To: apreq-cvs@httpd.apache.org
>> Sent: Tuesday, January 13, 2009 3:31:53 PM
>> Subject: svn commit: r734232 - /httpd/apreq/trunk/library/module_cgi.c
>>
>> Author: joes
>> Date: Tue Jan 13 12:31:48 2009
>> New Revision: 734232
>>
>> URL: http://svn.apache.org/viewvc?rev=734232&view=rev
>> Log:
>> more gcc warnings evaded
>>
>> Modified:
>>     httpd/apreq/trunk/library/module_cgi.c
>>
>> Modified: httpd/apreq/trunk/library/module_cgi.c
>> URL: 
>> http://svn.apache.org/viewvc/httpd/apreq/trunk/library/module_cgi.c?rev=734232&r1=734231&r2=734232&view=diff
>> ==============================================================================
>> --- httpd/apreq/trunk/library/module_cgi.c (original)
>> +++ httpd/apreq/trunk/library/module_cgi.c Tue Jan 13 12:31:48 2009
>> @@ -230,7 +230,7 @@
>>              }
>>          case '\\': /* Check next character for escape sequence 
>>                      * (just ignore it for now) */
>> -            *cprompt++;
>> +            (void)*cprompt++;
>>              /* Fallthrough */
>>
>>          default:      
>> @@ -243,7 +243,7 @@
>>      apr_file_printf(req->sout, "%s", buf[0]);
>>      apr_file_gets(buf[0], MAX_BUFFER_SIZE, req->sin);
>>      chomp(buf[0]);
>> -    if (stricmp(buf[0], "")) {
>> +    if (strcmp(buf[0], "")) {
>> /*        if (strcmp(buf[0], nullstr)) */
>>              return apr_pstrdup(handle->pool, buf[0]);
>> /*        return NULL; */
>> @@ -597,7 +597,7 @@
>>      else
>>          t = req->jar;
>>
>> -    val = (char *)apr_table_get(t, name);
>> +    val = apr_table_get(t, name);
>>      if (val == NULL) {
>>          if (!req->interactive_mode) {
>>              return NULL;
>>     
>
>
>
>       
>