From 0f5bf0aa374865dbbdd62fa43b855f481f3c0b60 Mon Sep 17 00:00:00 2001 From: Simon Goldschmidt Date: Thu, 30 Jan 2020 21:22:03 +0100 Subject: [PATCH] httpd: error files must start with "." to match HTTP status This is to prevent files like "4001.jpg" getting HTTP status 400 instead of 100. See bug #56290. Signed-off-by: Simon Goldschmidt --- src/apps/http/httpd.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/apps/http/httpd.c b/src/apps/http/httpd.c index cd7d9fdb..2b9baf88 100644 --- a/src/apps/http/httpd.c +++ b/src/apps/http/httpd.c @@ -871,14 +871,14 @@ get_http_headers(struct http_state *hs, const char *uri) return; } /* We are dealing with a particular filename. Look for one other - special case. We assume that any filename with "404" in it must be - indicative of a 404 server error whereas all other files require - the 200 OK header. */ - if (strstr(uri, "404")) { + special case. We assume that any filename with "404" in it must be + indicative of a 404 server error whereas all other files require + the 200 OK header. */ + if (strstr(uri, "404.") == uri) { hs->hdrs[HDR_STRINGS_IDX_HTTP_STATUS] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND]; - } else if (strstr(uri, "400")) { + } else if (strstr(uri, "400.") == uri) { hs->hdrs[HDR_STRINGS_IDX_HTTP_STATUS] = g_psHTTPHeaderStrings[HTTP_HDR_BAD_REQUEST]; - } else if (strstr(uri, "501")) { + } else if (strstr(uri, "501.") == uri) { hs->hdrs[HDR_STRINGS_IDX_HTTP_STATUS] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_IMPL]; } else { hs->hdrs[HDR_STRINGS_IDX_HTTP_STATUS] = g_psHTTPHeaderStrings[HTTP_HDR_OK];