-const char filters_rcs[] = "$Id: filters.c,v 1.185 2014/06/12 13:08:25 fabiankeil Exp $";
+const char filters_rcs[] = "$Id: filters.c,v 1.189 2014/10/18 11:26:18 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/filters.c,v $
}
if (NULL != url_segment)
{
- url_segment = strdup(url_segment);
+ url_segment = strdup_or_die(url_segment);
freez(dtoken);
- if (url_segment == NULL)
- {
- log_error(LOG_LEVEL_ERROR,
- "Out of memory while searching for redirects.");
- return NULL;
- }
break;
}
freez(dtoken);
{
log_error(LOG_LEVEL_ERROR, "fwrite(..., %d, 1, ..) failed: %E", *size);
unlink(file_name);
+ fclose(fp);
return NULL;
}
fclose(fp);
for (filtername = csp->action->multi[ACTION_MULTI_EXTERNAL_FILTER]->first;
filtername ; filtername = filtername->next)
{
- content = execute_external_filter(csp, filtername->str, content, &size);
+ char *result = execute_external_filter(csp, filtername->str, content, &size);
+ if (result != NULL)
+ {
+ if (content != csp->iob->cur)
+ {
+ free(content);
+ }
+ content = result;
+ }
}
csp->flags |= CSP_FLAG_MODIFIED;
csp->content_length = size;
* Invalid syntax is fatal.
*
*********************************************************************/
-const static struct forward_spec *get_forward_override_settings(struct client_state *csp)
+static const struct forward_spec *get_forward_override_settings(struct client_state *csp)
{
const char *forward_override_line = csp->action->string[ACTION_STRING_FORWARD_OVERRIDE];
char forward_settings[BUFFER_SIZE];