enforce_header_order(): Save a couple of memory allocations
[privoxy.git] / parsers.c
index d63647d..de1eea4 100644 (file)
--- a/parsers.c
+++ b/parsers.c
@@ -1211,8 +1211,8 @@ static void enforce_header_order(struct list *headers, const struct list *ordere
    }
 
    list_remove_all(headers);
-   list_duplicate(headers, new_headers);
-   list_remove_all(new_headers);
+   headers->first = new_headers->first;
+   headers->last  = new_headers->last;
 
    return;
 }
@@ -1291,7 +1291,9 @@ jb_err sed(struct client_state *csp, int filter_server_headers)
       f++;
    }
 
-   if (!filter_server_headers && !list_is_empty(csp->config->ordered_client_headers))
+   if (!filter_server_headers &&
+       !list_is_empty(csp->config->ordered_client_headers) &&
+       csp->headers->first->str != NULL)
    {
       enforce_header_order(csp->headers, csp->config->ordered_client_headers);
    }