-const char filters_rcs[] = "$Id: filters.c,v 1.72 2006/12/22 18:52:53 fabiankeil Exp $";
+const char filters_rcs[] = "$Id: filters.c,v 1.74 2006/12/24 17:37:38 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/filters.c,v $
*
* Revisions :
* $Log: filters.c,v $
+ * Revision 1.74 2006/12/24 17:37:38 fabiankeil
+ * Adjust comment in pcrs_filter_response()
+ * to recent pcrs changes. Hohoho.
+ *
+ * Revision 1.73 2006/12/23 16:01:02 fabiankeil
+ * Don't crash if pcre returns an error code
+ * that pcrs didn't expect. Fixes BR 1621173.
+ *
* Revision 1.72 2006/12/22 18:52:53 fabiankeil
* Modified is_untrusted_url to complain in case of
* write errors and to give a reason when adding new
p = strdup("");
for (tl = csp->config->trust_list; (t = *tl) != NULL ; tl++)
{
- sprintf(buf, "<li>%s</li>\n", t->spec);
+ snprintf(buf, sizeof(buf), "<li>%s</li>\n", t->spec);
string_append(&p, buf);
}
err = map(exports, "trusted-referrers", 1, p, 0);
p = strdup("");
for (l = csp->config->trust_info->first; l ; l = l->next)
{
- sprintf(buf, "<li> <a href=\"%s\">%s</a><br>\n",l->str, l->str);
+ snprintf(buf, sizeof(buf), "<li> <a href=\"%s\">%s</a><br>\n", l->str, l->str);
string_append(&p, buf);
}
err = map(exports, "trust-info", 1, p, 0);
{
return(NULL);
}
- size = csp->iob->eod - csp->iob->cur;
+ size = (size_t)(csp->iob->eod - csp->iob->cur);
/*
* Need to check the set of re_filterfiles...
else
{
/*
- * The job caused an unexpected error. Inform the user
- * and skip the rest of jobs in this filter. We could
+ * This job caused an unexpected error. Inform the user
+ * and skip the rest of the jobs in this filter. We could
* continue with the next job, but usually the jobs
* depend on each other or are similar enough to
- * fail with the same reason.
+ * fail for the same reason.
*
- * XXX: In theory pcrs_strerror() would
- * return a proper error message here.
+ * At the moment our pcrs expects the error codes of pcre 3.4,
+ * but newer pcre versions can return additional error codes.
+ * As a result pcrs_strerror()'s error message might be
+ * "Unknown error ...", therefore we print the numerical value
+ * as well.
*
- * At the moment, however, our pcrs expects the
- * error codes of pcre 3.4 and newer pcre version
- * return different error codes. As a result
- * pcrs_strerror()'s error message might be bogus,
- * therefore we print the numerical value as well.
+ * XXX: Is this important enough for LOG_LEVEL_ERROR or
+ * should we use LOG_LEVEL_RE_FILTER instead?
*/
log_error(LOG_LEVEL_ERROR, "Skipped filter \'%s\' after job number %u: %s (%d)",
- b->name, job_number, pcrs_strerror (job_hits), job_hits);
+ b->name, job_number, pcrs_strerror(job_hits), job_hits);
break;
}
}
{
struct binbuffer *in, *out;
char *p;
- size_t size = csp->iob->eod - csp->iob->cur;
+ size_t size;
+
+ size = (size_t)(csp->iob->eod - csp->iob->cur);
/*
* If the body has a "chunked" transfer-encoding,
*********************************************************************/
char *jpeg_inspect_response(struct client_state *csp)
{
- struct binbuffer *in = NULL, *out = NULL;
+ struct binbuffer *in = NULL;
+ struct binbuffer *out = NULL;
char *p = NULL;
- size_t size = csp->iob->eod - csp->iob->cur;
+ size_t size;
+
+ size = (size_t)(csp->iob->eod - csp->iob->cur);
/*
* If the body has a "chunked" transfer-encoding,
* went wrong
*
*********************************************************************/
-int remove_chunked_transfer_coding(char *buffer, const size_t size)
+size_t remove_chunked_transfer_coding(char *buffer, const size_t size)
{
size_t newsize = 0;
unsigned int chunksize = 0;