X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=loaders.c;h=f33e2c2d8e1b3de211961c142a43cdf7b165ce1f;hp=f2d8d5f8ee618987f5bbd4d3b93f11ac03c54ce1;hb=cf89cd7ace9007341dc8835f4b9c818dfb831666;hpb=cf9f517a263476946c02425c48dcf9118314454a diff --git a/loaders.c b/loaders.c index f2d8d5f8..f33e2c2d 100644 --- a/loaders.c +++ b/loaders.c @@ -1,4 +1,4 @@ -const char loaders_rcs[] = "$Id: loaders.c,v 1.67 2008/03/30 14:52:08 fabiankeil Exp $"; +const char loaders_rcs[] = "$Id: loaders.c,v 1.70 2009/03/01 18:34:24 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loaders.c,v $ @@ -8,7 +8,7 @@ const char loaders_rcs[] = "$Id: loaders.c,v 1.67 2008/03/30 14:52:08 fabiankeil * the list of active loaders, and to automatically * unload files that are no longer in use. * - * Copyright : Written by and Copyright (C) 2001-2007 the SourceForge + * Copyright : Written by and Copyright (C) 2001-2009 the * Privoxy team. http://www.privoxy.org/ * * Based on the Internet Junkbuster originally written @@ -35,6 +35,21 @@ const char loaders_rcs[] = "$Id: loaders.c,v 1.67 2008/03/30 14:52:08 fabiankeil * * Revisions : * $Log: loaders.c,v $ + * Revision 1.70 2009/03/01 18:34:24 fabiankeil + * Help clang understand that we aren't dereferencing + * NULL pointers here. + * + * Revision 1.69 2008/09/21 13:36:52 fabiankeil + * If change-x-forwarded-for{add} is used and the client + * sends multiple X-Forwarded-For headers, append the client's + * IP address to each one of them. "Traditionally" we would + * lose all but the last one. + * + * Revision 1.68 2008/09/19 15:26:28 fabiankeil + * Add change-x-forwarded-for{} action to block or add + * X-Forwarded-For headers. Mostly based on code removed + * before 3.0.7. + * * Revision 1.67 2008/03/30 14:52:08 fabiankeil * Rename load_actions_file() and load_re_filterfile() * as they load multiple files "now". @@ -511,7 +526,6 @@ void sweep(void) freez(csp->ip_addr_str); freez(csp->iob->buf); - freez(csp->x_forwarded_for); freez(csp->error_message); if (csp->action->flags & ACTION_FORWARD_OVERRIDE && @@ -863,30 +877,30 @@ jb_err edit_read_line(FILE *fp, if (raw_out) { - if ((raw = malloc(1)) == NULL) + raw = strdup(""); + if (NULL == raw) { return JB_ERR_MEMORY; } - *raw = '\0'; } if (prefix_out) { - if ((prefix = malloc(1)) == NULL) + prefix = strdup(""); + if (NULL == prefix) { freez(raw); return JB_ERR_MEMORY; } - *prefix = '\0'; } if (data_out) { - if ((data = malloc(1)) == NULL) + data = strdup(""); + if (NULL == data) { freez(raw); freez(prefix); return JB_ERR_MEMORY; } - *data = '\0'; } /* Main loop. Loop while we need more data & it's not EOF. */ @@ -920,6 +934,7 @@ jb_err edit_read_line(FILE *fp, /* Trim leading spaces if we're at the start of the line */ linestart = linebuf; + assert(NULL != data); if (*data == '\0') { /* Trim leading spaces */ @@ -1559,6 +1574,7 @@ int load_one_re_filterfile(struct client_state *csp, int fileid) } else { + assert(NULL != bl); bl->next = new_bl; } bl = new_bl; @@ -1622,7 +1638,7 @@ int load_one_re_filterfile(struct client_state *csp, int fileid) { bl->joblist = dummy; } - else + else if (NULL != lastjob) { lastjob->next = dummy; }