projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
execute_external_filter(): Fix file descriptor leak in error path
[privoxy.git]
/
cgisimple.c
diff --git
a/cgisimple.c
b/cgisimple.c
index
1a884a8
..
514d245
100644
(file)
--- a/
cgisimple.c
+++ b/
cgisimple.c
@@
-1,4
+1,4
@@
-const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.12
1 2014/05/05 09:55:51
fabiankeil Exp $";
+const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.12
8 2014/06/03 10:29:23
fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
@@
-6,7
+6,7
@@
const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.121 2014/05/05 09:55:51 fabia
* Purpose : Simple CGIs to get information about Privoxy's
* status.
*
* Purpose : Simple CGIs to get information about Privoxy's
* status.
*
- * Copyright : Written by and Copyright (C) 2001-201
3
the
+ * Copyright : Written by and Copyright (C) 2001-201
4
the
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
@@
-142,12
+142,7
@@
jb_err cgi_error_404(struct client_state *csp,
return JB_ERR_MEMORY;
}
return JB_ERR_MEMORY;
}
- rsp->status = strdup("404 Privoxy configuration page not found");
- if (rsp->status == NULL)
- {
- free_map(exports);
- return JB_ERR_MEMORY;
- }
+ rsp->status = strdup_or_die("404 Privoxy configuration page not found");
return template_fill_for_cgi(csp, "cgi-error-404", exports, rsp);
}
return template_fill_for_cgi(csp, "cgi-error-404", exports, rsp);
}
@@
-171,7
+166,6
@@
jb_err cgi_error_404(struct client_state *csp,
* CGI Parameters : none
*
* Returns : JB_ERR_OK on success
* CGI Parameters : none
*
* Returns : JB_ERR_OK on success
- * JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_die (struct client_state *csp,
*
*********************************************************************/
jb_err cgi_die (struct client_state *csp,
@@
-205,13
+199,8
@@
jb_err cgi_die (struct client_state *csp,
rsp->head_length = 0;
rsp->is_static = 0;
rsp->head_length = 0;
rsp->is_static = 0;
- rsp->body = strdup(body);
- rsp->status = strdup(status);
-
- if ((rsp->body == NULL) || (rsp->status == NULL))
- {
- return JB_ERR_MEMORY;
- }
+ rsp->body = strdup_or_die(body);
+ rsp->status = strdup_or_die(status);
return JB_ERR_OK;
}
return JB_ERR_OK;
}
@@
-374,11
+363,7
@@
jb_err cgi_send_banner(struct client_state *csp,
*/
if (imagetype == 'r')
{
*/
if (imagetype == 'r')
{
- rsp->status = strdup("302 Local Redirect from Privoxy");
- if (rsp->status == NULL)
- {
- return JB_ERR_MEMORY;
- }
+ rsp->status = strdup_or_die("302 Local Redirect from Privoxy");
if (enlist_unique_header(rsp->headers, "Location",
csp->action->string[ACTION_STRING_IMAGE_BLOCKER]))
{
if (enlist_unique_header(rsp->headers, "Location",
csp->action->string[ACTION_STRING_IMAGE_BLOCKER]))
{
@@
-697,8
+682,8
@@
static const char *get_content_type(const char *filename)
int i;
struct content_type
{
int i;
struct content_type
{
- const char
*extension
;
- const char
*content_type
;
+ const char
extension[6]
;
+ const char
content_type[11]
;
};
static const struct content_type content_types[] =
{
};
static const struct content_type content_types[] =
{
@@
-963,7
+948,7
@@
jb_err cgi_show_status(struct client_state *csp,
}
#else /* ndef FEATURE_STATISTICS */
}
#else /* ndef FEATURE_STATISTICS */
-
err = err ||
map_block_killer(exports, "statistics");
+
if (!err) err =
map_block_killer(exports, "statistics");
#endif /* ndef FEATURE_STATISTICS */
/*
#endif /* ndef FEATURE_STATISTICS */
/*
@@
-1064,6
+1049,8
@@
jb_err cgi_show_status(struct client_state *csp,
}
#endif /* ndef CGI_EDIT_ACTIONS */
}
#endif /* ndef CGI_EDIT_ACTIONS */
+ if (!err) err = map(exports, "force-prefix", 1, FORCE_PREFIX, 1);
+
if (err)
{
free_map(exports);
if (err)
{
free_map(exports);
@@
-1117,12
+1104,7
@@
jb_err cgi_show_url_info(struct client_state *csp,
/*
* Get the url= parameter (if present) and remove any leading/trailing spaces.
*/
/*
* Get the url= parameter (if present) and remove any leading/trailing spaces.
*/
- url_param = strdup(lookup(parameters, "url"));
- if (url_param == NULL)
- {
- free_map(exports);
- return JB_ERR_MEMORY;
- }
+ url_param = strdup_or_die(lookup(parameters, "url"));
chomp(url_param);
/*
chomp(url_param);
/*
@@
-1165,7
+1147,7
@@
jb_err cgi_show_url_info(struct client_state *csp,
* No prefix or at least no prefix before
* the first slash - assume http://
*/
* No prefix or at least no prefix before
* the first slash - assume http://
*/
- char *url_param_prefixed = strdup("http://");
+ char *url_param_prefixed = strdup
_or_die
("http://");
if (JB_ERR_OK != string_join(&url_param_prefixed, url_param))
{
if (JB_ERR_OK != string_join(&url_param_prefixed, url_param))
{
@@
-1185,6
+1167,7
@@
jb_err cgi_show_url_info(struct client_state *csp,
map_block_killer(exports, "privoxy-is-toggled-off")
)
{
map_block_killer(exports, "privoxy-is-toggled-off")
)
{
+ freez(url_param);
free_map(exports);
return JB_ERR_MEMORY;
}
free_map(exports);
return JB_ERR_MEMORY;
}
@@
-1277,7
+1260,7
@@
jb_err cgi_show_url_info(struct client_state *csp,
}
}
}
}
- matches = strdup("<table summary=\"\" class=\"transparent\">");
+ matches = strdup
_or_die
("<table summary=\"\" class=\"transparent\">");
for (i = 0; i < MAX_AF_FILES; i++)
{
for (i = 0; i < MAX_AF_FILES; i++)
{
@@
-1516,7
+1499,7
@@
jb_err cgi_robots_txt(struct client_state *csp,
(void)csp;
(void)parameters;
(void)csp;
(void)parameters;
- rsp->body = strdup(
+ rsp->body = strdup
_or_die
(
"# This is the Privoxy control interface.\n"
"# It isn't very useful to index it, and you're likely to break stuff.\n"
"# So go away!\n"
"# This is the Privoxy control interface.\n"
"# It isn't very useful to index it, and you're likely to break stuff.\n"
"# So go away!\n"
@@
-1524,10
+1507,6
@@
jb_err cgi_robots_txt(struct client_state *csp,
"User-agent: *\n"
"Disallow: /\n"
"\n");
"User-agent: *\n"
"Disallow: /\n"
"\n");
- if (rsp->body == NULL)
- {
- return JB_ERR_MEMORY;
- }
err = enlist_unique(rsp->headers, "Content-Type: text/plain", 13);
err = enlist_unique(rsp->headers, "Content-Type: text/plain", 13);
@@
-1717,8
+1696,8
@@
static jb_err show_defines(struct map *exports)
#endif
},
{
#endif
},
{
- "
STAT
IC_PCRE",
-#ifdef
STAT
IC_PCRE
+ "
FEATURE_DYNAM
IC_PCRE",
+#ifdef
FEATURE_DYNAM
IC_PCRE
1,
#else
0,
1,
#else
0,
@@
-1753,7
+1732,7
@@
static jb_err show_defines(struct map *exports)
*********************************************************************/
static char *show_rcs(void)
{
*********************************************************************/
static char *show_rcs(void)
{
- char *result = strdup("");
+ char *result = strdup
_or_die
("");
char buf[BUFFER_SIZE];
/* Instead of including *all* dot h's in the project (thus creating a
char buf[BUFFER_SIZE];
/* Instead of including *all* dot h's in the project (thus creating a