X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=src%2Ffilters.c;h=3c7265b3d51cab638dbc268655054d1cbd7a3e77;hb=b4864292cddd469335c27eba423d8cbe52e91f54;hp=60f47e976a061ad1a886c91e4c7372f79026b068;hpb=2da19eb8eff90f6c9a7cb46ff891643e89d50a55;p=privoxy.git diff --git a/src/filters.c b/src/filters.c index 60f47e97..3c7265b3 100644 --- a/src/filters.c +++ b/src/filters.c @@ -1,7 +1,7 @@ -const char filters_rcs[] = "$Id: filters.c,v 1.58 2002/04/24 02:11:17 oes Exp $"; +const char filters_rcs[] = "$Id: filters.c,v 2.1 2002/08/26 11:08:18 sarantis Exp $"; /********************************************************************* * - * File : $Source: /cvsroot/ijbswa/current/filters.c,v $ + * File : $Source: /cvsroot/ijbswa//current/src/filters.c,v $ * * Purpose : Declares functions to parse/crunch headers and pages. * Functions declared include: @@ -38,6 +38,12 @@ const char filters_rcs[] = "$Id: filters.c,v 1.58 2002/04/24 02:11:17 oes Exp $" * * Revisions : * $Log: filters.c,v $ + * Revision 2.1 2002/08/26 11:08:18 sarantis + * Fix typo. + * + * Revision 2.0 2002/06/04 14:34:21 jongfoster + * Moving source files to src/ + * * Revision 1.58 2002/04/24 02:11:17 oes * Jon's multiple AF patch: url_actions now evaluates rules * from all AFs. @@ -215,7 +221,7 @@ const char filters_rcs[] = "$Id: filters.c,v 1.58 2002/04/24 02:11:17 oes Exp $" * generic content modification interface of pcrs_filter_response * and acts as a wrapper to deanimate.c:gif_deanimate() * - Renamed re_process_buffer to pcrs_filter_response - * - pcrs_filter_response now returns NULL on failiure + * - pcrs_filter_response now returns NULL on failure * - Removed all #ifdef PCRS * * Revision 1.20 2001/07/01 17:01:04 oes @@ -1078,8 +1084,9 @@ struct http_response *redirect_url(struct client_state *csp) * * Description : Given a URL, decide whether it is an image or not, * using either the info from a previous +image action - * or, #ifdef FEATURE_IMAGE_DETECT_MSIE, the info from - * the browser's accept header. + * or, #ifdef FEATURE_IMAGE_DETECT_MSIE, and the browser + * is MSIE and not on a Mac, tell from the browser's accept + * header. * * Parameters : * 1 : csp = Current client state (buffers, headers, etc...) @@ -1094,7 +1101,7 @@ int is_imageurl(struct client_state *csp) char *tmp; tmp = get_header_value(csp->headers, "User-Agent:"); - if (tmp && strstr(tmp, "MSIE")) + if (tmp && strstr(tmp, "MSIE") && !strstr(tmp, "Mac_")) { tmp = get_header_value(csp->headers, "Accept:"); if (tmp && strstr(tmp, "image/gif")) @@ -1315,7 +1322,7 @@ char *pcrs_filter_response(struct client_state *csp) if ( NULL == b->joblist ) { log_error(LOG_LEVEL_RE_FILTER, "Filter %s has empty joblist. Nothing to do.", b->name); - return(NULL); + continue; } log_error(LOG_LEVEL_RE_FILTER, "re_filtering %s%s (size %d) with filter %s...", @@ -1466,7 +1473,12 @@ int remove_chunked_transfer_coding(char *buffer, const size_t size) log_error(LOG_LEVEL_ERROR, "Parse error while stripping \"chunked\" transfer coding"); return(0); } - newsize += chunksize; + + if ((newsize += chunksize) >= size) + { + log_error(LOG_LEVEL_ERROR, "Chunksize exceeds buffer in \"chunked\" transfer coding"); + return(0); + } from_p += 2; memmove(to_p, from_p, (size_t) chunksize);