X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=cgiedit.c;h=d12554a1db695c1698b7f9b403abfaa1312852bc;hb=f55d81537133b3a930af312df054187a8ec5e432;hp=f653b4e79a364ce218dc70fa1d25c35e39ba4c2a;hpb=8675bc0559b182e88e9dfbfd98cc9c9f8717cf0b;p=privoxy.git diff --git a/cgiedit.c b/cgiedit.c index f653b4e7..d12554a1 100644 --- a/cgiedit.c +++ b/cgiedit.c @@ -1,4 +1,4 @@ -const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.74 2012/03/09 16:24:36 fabiankeil Exp $"; +const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.81 2014/06/02 06:22:20 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/cgiedit.c,v $ @@ -13,7 +13,7 @@ const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.74 2012/03/09 16:24:36 fabiankeil * * Stick to the short names in this file for consistency. * - * Copyright : Written by and Copyright (C) 2001-2008 the SourceForge + * Copyright : Written by and Copyright (C) 2001-2014 the * Privoxy team. http://www.privoxy.org/ * * Based on the Internet Junkbuster originally written @@ -121,19 +121,6 @@ struct file_line } setting; - /* Add more data types here... e.g. - - - struct url_spec url[1]; - - struct - { - struct action_spec action[1]; - const char * name; - } alias; - - */ - } data; }; @@ -256,6 +243,14 @@ static const struct filter_type_info filter_type_info[] = "server-header-tagger-all", "server_header_tagger_all", "E", "SERVER-HEADER-TAGGER" }, +#ifdef FEATURE_EXTERNAL_FILTERS + { + ACTION_MULTI_EXTERNAL_FILTER, + "external-content-filter-params", "external-filter", + "external-content-filter-all", "external_content_filter_all", + "E", "EXTERNAL-CONTENT-FILTER" + }, +#endif }; /* FIXME: Following non-static functions should be prototyped in .h or made static */ @@ -351,7 +346,7 @@ static char *section_target(const unsigned sectionid) { char buf[30]; - snprintf(buf, sizeof(buf), "#l%d", sectionid); + snprintf(buf, sizeof(buf), "#l%u", sectionid); return(strdup(buf)); } @@ -373,7 +368,7 @@ static char *stringify(const unsigned number) { char buf[6]; - snprintf(buf, sizeof(buf), "%i", number); + snprintf(buf, sizeof(buf), "%u", number); return strdup(buf); } @@ -765,12 +760,7 @@ jb_err edit_write_file(struct editable_file * file) /* Allocate new memory for string */ len = strlen(cur_line->unprocessed) + (size_t)numhash; - if (NULL == (str = malloc(len + 1))) - { - /* Uh oh, just trashed file! */ - fclose(fp); - return JB_ERR_MEMORY; - } + str = malloc_or_die(len + 1); /* Copy string but quote hashes */ src = cur_line->unprocessed; @@ -1061,10 +1051,7 @@ static jb_err split_line_on_equals(const char * line, char ** pname, char ** pva } name_len = (size_t)(name_end - line) + 1; /* Length excluding \0 */ - if (NULL == (*pname = (char *) malloc(name_len + 1))) - { - return JB_ERR_MEMORY; - } + *pname = malloc_or_die(name_len + 1); strncpy(*pname, line, name_len); (*pname)[name_len] = '\0'; @@ -1326,12 +1313,7 @@ jb_err edit_parse_actions_file(struct editable_file * file) cur_line->type = FILE_LINE_ACTION; /* Remove {} and make copy */ - if (NULL == (value = (char *) malloc(len + 1))) - { - /* Out of memory */ - free_alias_list(alias_list); - return JB_ERR_MEMORY; - } + value = malloc_or_die(len + 1); strncpy(value, text, len); value[len] = '\0'; @@ -1792,11 +1774,7 @@ static jb_err get_file_name_param(struct client_state *csp, /* Append extension */ name_size = len + strlen(suffix) + 1; - name = malloc(name_size); - if (name == NULL) - { - return JB_ERR_MEMORY; - } + name = malloc_or_die(name_size); strlcpy(name, param, name_size); strlcat(name, suffix, name_size); @@ -1857,7 +1835,7 @@ static jb_err get_url_spec_param(struct client_state *csp, const char *orig_param; char *param; char *s; - struct url_spec compiled[1]; + struct pattern_spec compiled[1]; jb_err err; assert(csp); @@ -1905,14 +1883,14 @@ static jb_err get_url_spec_param(struct client_state *csp, free(param); return JB_ERR_MEMORY; } - err = create_url_spec(compiled, s); + err = create_pattern_spec(compiled, s); free(s); if (err) { free(param); return (err == JB_ERR_MEMORY) ? JB_ERR_MEMORY : JB_ERR_CGI_PARAMS; } - free_url_spec(compiled); + free_pattern_spec(compiled); if (param[strlen(param) - 1] == '\\') { @@ -1941,14 +1919,14 @@ static jb_err get_url_spec_param(struct client_state *csp, free(param); return JB_ERR_MEMORY; } - err = create_url_spec(compiled, s); + err = create_pattern_spec(compiled, s); free(s); if (err) { free(param); return (err == JB_ERR_MEMORY) ? JB_ERR_MEMORY : JB_ERR_CGI_PARAMS; } - free_url_spec(compiled); + free_pattern_spec(compiled); } *pvalue = param; @@ -1996,11 +1974,7 @@ static jb_err map_radio(struct map * exports, assert(optionname); assert(values); - buf = malloc(buf_size); - if (buf == NULL) - { - return JB_ERR_MEMORY; - } + buf = malloc_or_die(buf_size); strlcpy(buf, optionname, buf_size); @@ -2412,9 +2386,9 @@ jb_err cgi_edit_actions_list(struct client_state *csp, */ if (!err) err = map_conditional(exports, "all-urls-present", 1); - snprintf(buf, sizeof(buf), "%d", line_number); + snprintf(buf, sizeof(buf), "%u", line_number); if (!err) err = map(exports, "all-urls-s", 1, buf, 1); - snprintf(buf, sizeof(buf), "%d", line_number + 2); + snprintf(buf, sizeof(buf), "%u", line_number + 2); if (!err) err = map(exports, "all-urls-s-next", 1, buf, 1); if (!err) err = map(exports, "all-urls-actions", 1, actions_to_html(csp, cur_line->data.action), 0); @@ -2525,7 +2499,7 @@ jb_err cgi_edit_actions_list(struct client_state *csp, return JB_ERR_MEMORY; } - snprintf(buf, sizeof(buf), "%d", line_number); + snprintf(buf, sizeof(buf), "%u", line_number); err = map(section_exports, "s", 1, buf, 1); if (!err) err = map(section_exports, "actions", 1, actions_to_html(csp, cur_line->data.action), 0); @@ -2545,7 +2519,7 @@ jb_err cgi_edit_actions_list(struct client_state *csp, if (prev_section_line_number != ((unsigned)(-1))) { /* Not last section */ - snprintf(buf, sizeof(buf), "%d", prev_section_line_number); + snprintf(buf, sizeof(buf), "%u", prev_section_line_number); if (!err) err = map(section_exports, "s-prev", 1, buf, 1); if (!err) err = map_block_keep(section_exports, "s-prev-exists"); } @@ -2599,7 +2573,7 @@ jb_err cgi_edit_actions_list(struct client_state *csp, return JB_ERR_MEMORY; } - snprintf(buf, sizeof(buf), "%d", line_number); + snprintf(buf, sizeof(buf), "%u", line_number); err = map(url_exports, "p", 1, buf, 1); snprintf(buf, sizeof(buf), "%d", url_1_2); @@ -2665,7 +2639,7 @@ jb_err cgi_edit_actions_list(struct client_state *csp, /* Could also do section-specific exports here, but it wouldn't be as fast */ - snprintf(buf, sizeof(buf), "%d", line_number); + snprintf(buf, sizeof(buf), "%u", line_number); if (!err) err = map(section_exports, "s-next", 1, buf, 1); if ((cur_line != NULL) @@ -2854,6 +2828,10 @@ jb_err cgi_edit_actions_for_url(struct client_state *csp, } } +#ifndef FEATURE_EXTERNAL_FILTERS + if (!err) err = map_block_killer(exports, "external-content-filters"); +#endif + if (err) { edit_free_file(file); @@ -3240,13 +3218,7 @@ jb_err cgi_edit_actions_submit(struct client_state *csp, } newtext_size = len + 2; - if (NULL == (newtext = malloc(newtext_size))) - { - /* Out of memory */ - free(actiontext); - edit_free_file(file); - return JB_ERR_MEMORY; - } + newtext = malloc_or_die(newtext_size); strlcpy(newtext, actiontext, newtext_size); free(actiontext); newtext[0] = '{'; @@ -3270,7 +3242,7 @@ jb_err cgi_edit_actions_submit(struct client_state *csp, return err; } - snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i#l%d", + snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i#l%u", (long) time(NULL), file->identifier, sectionid); edit_free_file(file); @@ -3391,7 +3363,7 @@ jb_err cgi_edit_actions_url(struct client_state *csp, return err; } - snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i#l%d", + snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i#l%u", (long) time(NULL), file->identifier, section_start_line_number); edit_free_file(file); @@ -3520,7 +3492,7 @@ jb_err cgi_edit_actions_add_url(struct client_state *csp, return err; } - snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i#l%d", + snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i#l%u", (long) time(NULL), file->identifier, sectionid); edit_free_file(file); @@ -3631,7 +3603,7 @@ jb_err cgi_edit_actions_remove_url(struct client_state *csp, return err; } - snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i#l%d", + snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%u#l%u", (long) time(NULL), file->identifier, section_start_line_number); edit_free_file(file); @@ -3753,7 +3725,7 @@ jb_err cgi_edit_actions_section_remove(struct client_state *csp, return err; } - snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i", + snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%u", (long) time(NULL), file->identifier); edit_free_file(file); @@ -3922,7 +3894,7 @@ jb_err cgi_edit_actions_section_add(struct client_state *csp, return err; } - snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i", + snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%u", (long) time(NULL), file->identifier); edit_free_file(file); @@ -4111,7 +4083,7 @@ jb_err cgi_edit_actions_section_swap(struct client_state *csp, } } /* END if (section1 != section2) */ - snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%i", + snprintf(target, sizeof(target), CGI_PREFIX "edit-actions-list?foo=%lu&f=%u", (long) time(NULL), file->identifier); edit_free_file(file);