X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=cgi.c;h=3bdeda3fd981ffa2e7b7938f98e6369a25cba895;hp=ef98085e5f0cb2d3456736a353834723a61514ab;hb=e8db07c2f0720685bb504013a6a1e576b0cf718f;hpb=44e93e6343f9fe1deb9ad4852683fe5ca8e9a01b diff --git a/cgi.c b/cgi.c index ef98085e..3bdeda3f 100644 --- a/cgi.c +++ b/cgi.c @@ -1,4 +1,4 @@ -const char cgi_rcs[] = "$Id: cgi.c,v 1.113 2008/09/04 08:13:58 fabiankeil Exp $"; +const char cgi_rcs[] = "$Id: cgi.c,v 1.115 2009/03/01 18:28:23 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/cgi.c,v $ @@ -38,6 +38,13 @@ const char cgi_rcs[] = "$Id: cgi.c,v 1.113 2008/09/04 08:13:58 fabiankeil Exp $" * * Revisions : * $Log: cgi.c,v $ + * Revision 1.115 2009/03/01 18:28:23 fabiankeil + * Help clang understand that we aren't dereferencing + * NULL pointers here. + * + * Revision 1.114 2008/12/04 18:15:04 fabiankeil + * Fix some cparser warnings. + * * Revision 1.113 2008/09/04 08:13:58 fabiankeil * Prepare for critical sections on Windows by adding a * layer of indirection before the pthread mutex functions. @@ -1501,6 +1508,7 @@ struct http_response *error_response(struct client_state *csp, * XXX: While the template is called forwarding-failed, * it currently only handles socks forwarding failures. */ + assert(fwd != NULL); assert(fwd->type != SOCKS_NONE); /* @@ -2409,10 +2417,10 @@ jb_err template_load(const struct client_state *csp, char **template_ptr, * Read the file, ignoring comments, and honoring #include * statements, unless we're already called recursively. * - * FIXME: The comment handling could break with lines >BUFFER_SIZE long. - * This is unlikely in practise. + * XXX: The comment handling could break with lines lengths > sizeof(buf). + * This is unlikely in practise. */ - while (fgets(buf, BUFFER_SIZE, fp)) + while (fgets(buf, sizeof(buf), fp)) { if (!recursive && !strncmp(buf, "#include ", 9)) { @@ -2482,7 +2490,7 @@ jb_err template_fill(char **template_ptr, const struct map *exports) char buf[BUFFER_SIZE]; char *tmp_out_buffer; char *file_buffer; - size_t size; + size_t size; int error; const char *flags; @@ -2505,7 +2513,7 @@ jb_err template_fill(char **template_ptr, const struct map *exports) * character and allow backreferences ($1 etc) in the * "replace with" text. */ - snprintf(buf, BUFFER_SIZE, "%s", m->name + 1); + snprintf(buf, sizeof(buf), "%s", m->name + 1); flags = "sigU"; } else @@ -2518,10 +2526,9 @@ jb_err template_fill(char **template_ptr, const struct map *exports) flags = "sigTU"; /* Enclose name in @@ */ - snprintf(buf, BUFFER_SIZE, "@%s@", m->name); + snprintf(buf, sizeof(buf), "@%s@", m->name); } - log_error(LOG_LEVEL_CGI, "Substituting: s/%s/%s/%s", buf, m->value, flags); /* Make and run job. */