-const char cgi_rcs[] = "$Id: cgi.c,v 1.110 2008/08/31 14:55:43 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 $
*
* 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.
+ *
+ * Revision 1.112 2008/08/31 16:08:12 fabiankeil
+ * "View the request headers" isn't more equal than the other
+ * menu items and thus doesn't need a trailing dot either.
+ *
+ * Revision 1.111 2008/08/31 15:59:02 fabiankeil
+ * There's no reason to let remote toggling support depend
+ * on FEATURE_CGI_EDIT_ACTIONS, so make sure it doesn't.
+ *
* Revision 1.110 2008/08/31 14:55:43 fabiankeil
* Add a @date@ symbol to include a date(1)-like time string
* in templates. Modified version of the patch Endre Szabo
TRUE },
{ "show-request",
cgi_show_request,
- "View the request headers.",
+ "View the request headers",
TRUE },
{ "show-url-info",
cgi_show_url_info,
* XXX: While the template is called forwarding-failed,
* it currently only handles socks forwarding failures.
*/
+ assert(fwd != NULL);
assert(fwd->type != SOCKS_NONE);
/*
#endif
assert(buf);
- assert(buffer_size > 29);
+ assert(buffer_size > (size_t)29);
time(¤t_time);
#if HAVE_GMTIME_R
t = gmtime_r(¤t_time, &dummy);
#elif FEATURE_PTHREAD
- pthread_mutex_lock(&gmtime_mutex);
+ privoxy_mutex_lock(&gmtime_mutex);
t = gmtime(¤t_time);
- pthread_mutex_unlock(&gmtime_mutex);
+ privoxy_mutex_unlock(&gmtime_mutex);
#else
t = gmtime(¤t_time);
#endif
#endif
assert(buf);
- assert(buffer_size > 29);
+ assert(buffer_size > (size_t)29);
time(¤t_time);
#if HAVE_LOCALTIME_R
timeptr = localtime_r(¤t_time, &dummy);
#elif FEATURE_PTHREAD
- pthread_mutex_lock(&localtime_mutex);
+ privoxy_mutex_lock(&localtime_mutex);
timeptr = localtime(¤t_time);
- pthread_mutex_unlock(&localtime_mutex);
+ privoxy_mutex_unlock(&localtime_mutex);
#else
timeptr = localtime(¤t_time);
#endif
* 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))
{
char buf[BUFFER_SIZE];
char *tmp_out_buffer;
char *file_buffer;
- size_t size;
+ size_t size;
int error;
const char *flags;
* 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
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. */
assert(exports);
assert(name);
- assert(strlen(name) < 490);
+ assert(strlen(name) < (size_t)490);
snprintf(buf, sizeof(buf), "if-%s-start.*if-%s-end", name, name);
return map(exports, buf, 1, "", 1);
assert(exports);
assert(name);
- assert(strlen(name) < 490);
+ assert(strlen(name) < (size_t)490);
snprintf(buf, sizeof(buf), "if-%s-start", name);
err = map(exports, buf, 1, "", 1);
assert(exports);
assert(name);
- assert(strlen(name) < 480);
+ assert(strlen(name) < (size_t)480);
snprintf(buf, sizeof(buf), (choose_first
? "else-not-%s@.*@endif-%s"