From ce62ddc9368719a74ea0a2e85d9d607ccf437ba8 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Thu, 15 Aug 2024 20:33:42 +0200 Subject: [PATCH] Apply and update Pi-hole patches Signed-off-by: DL6ER --- patch/civetweb.sh | 14 ++++- ...TL-URI-rewriting-changes-to-CivetWeb.patch | 16 ++--- ...EN-option-to-civetweb-s-LUA-routines.patch | 35 ----------- .../0001-Add-mbedTLS-debug-logging-hook.patch | 10 ++-- ...ow-extended-ASCII-characters-in-URIs.patch | 35 ----------- ...es-to-webserver.log-when-debug.webse.patch | 22 ------- ...ster-CSRF-token-in-conn-request_info.patch | 12 ++-- src/webserver/civetweb/civetweb.c | 60 ++++++++++++++++++- src/webserver/civetweb/civetweb.h | 20 +++++++ src/webserver/civetweb/handle_form.inl | 32 +++++----- src/webserver/civetweb/mod_lua.inl | 11 ++-- src/webserver/civetweb/mod_mbedtls.inl | 16 +++++ src/webserver/webserver.c | 3 +- 13 files changed, 150 insertions(+), 136 deletions(-) delete mode 100644 patch/civetweb/0001-Add-NO_DLOPEN-option-to-civetweb-s-LUA-routines.patch delete mode 100644 patch/civetweb/0001-Allow-extended-ASCII-characters-in-URIs.patch diff --git a/patch/civetweb.sh b/patch/civetweb.sh index f33dc8de..3fcc732a 100644 --- a/patch/civetweb.sh +++ b/patch/civetweb.sh @@ -1,13 +1,23 @@ #!/bin/sh set -e +echo "Applying patches for civetweb" +echo "Applying patch 0001-add-pihole-mods.patch" patch -p1 < patch/civetweb/0001-add-pihole-mods.patch -patch -p1 < patch/civetweb/0001-Add-NO_DLOPEN-option-to-civetweb-s-LUA-routines.patch + +echo "Applying patch 0001-Always-Kepler-syntax-for-Lua-server-pages.patch" patch -p1 < patch/civetweb/0001-Always-Kepler-syntax-for-Lua-server-pages.patch + +echo "Applying patch 0001-Add-FTL-URI-rewriting-changes-to-CivetWeb.patch" patch -p1 < patch/civetweb/0001-Add-FTL-URI-rewriting-changes-to-CivetWeb.patch + +echo "Applying patch 0001-Add-mbedTLS-debug-logging-hook.patch" patch -p1 < patch/civetweb/0001-Add-mbedTLS-debug-logging-hook.patch + +echo "Applying patch 0001-Add-Register-CSRF-token-in-conn-request_info.patch" patch -p1 < patch/civetweb/0001-Register-CSRF-token-in-conn-request_info.patch + +echo "Applying patch 0001-Log-debug-messages-to-webserver.log-when-debug.webse.patch" patch -p1 < patch/civetweb/0001-Log-debug-messages-to-webserver.log-when-debug.webse.patch -patch -p1 < patch/civetweb/0001-Allow-extended-ASCII-characters-in-URIs.patch echo "ALL PATCHES APPLIED OKAY" diff --git a/patch/civetweb/0001-Add-FTL-URI-rewriting-changes-to-CivetWeb.patch b/patch/civetweb/0001-Add-FTL-URI-rewriting-changes-to-CivetWeb.patch index f5439791..f0f78ea0 100644 --- a/patch/civetweb/0001-Add-FTL-URI-rewriting-changes-to-CivetWeb.patch +++ b/patch/civetweb/0001-Add-FTL-URI-rewriting-changes-to-CivetWeb.patch @@ -14,14 +14,14 @@ index 0d293f1f..44f6cf3d 100644 --- a/src/webserver/civetweb/civetweb.c +++ b/src/webserver/civetweb/civetweb.c @@ -7754,6 +7754,8 @@ interpret_uri(struct mg_connection *conn, /* in/out: request (must be valid) */ - mg_snprintf( - conn, &truncated, filename, filename_buf_len - 1, "%s%s", root, uri); + roots[i], + uri); -+ FTL_rewrite_pattern(filename, filename_buf_len - 1, root, uri); ++ FTL_rewrite_pattern(filename, filename_buf_len - 1); + - if (truncated) { - goto interpret_cleanup; - } + if (truncated) { + goto interpret_cleanup; + } diff --git a/src/webserver/civetweb/civetweb.h b/src/webserver/civetweb/civetweb.h index e71dfedc..2ad76693 100644 --- a/src/webserver/civetweb/civetweb.h @@ -30,8 +30,8 @@ index e71dfedc..2ad76693 100644 int status, const char* mime_type, long long content_length); -+void FTL_rewrite_pattern(char *filename, size_t filename_buf_len, -+ const char *root, const char *uri); ++void FTL_rewrite_pattern(char *filename, unsigned long filename_buf_len); ++ + // Buffer used for additional "Set-Cookie" headers #define PIHOLE_HEADERS_MAXLEN 1024 diff --git a/patch/civetweb/0001-Add-NO_DLOPEN-option-to-civetweb-s-LUA-routines.patch b/patch/civetweb/0001-Add-NO_DLOPEN-option-to-civetweb-s-LUA-routines.patch deleted file mode 100644 index ee48ec54..00000000 --- a/patch/civetweb/0001-Add-NO_DLOPEN-option-to-civetweb-s-LUA-routines.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 1b81285fed48df6939d4b2569bba9e572f4c1137 Mon Sep 17 00:00:00 2001 -From: DL6ER -Date: Fri, 13 Jan 2023 21:37:31 +0100 -Subject: [PATCH] Add NO_DLOPEN option to civetweb's LUA routines - -Signed-off-by: DL6ER ---- - src/webserver/civetweb/mod_lua.inl | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/webserver/civetweb/mod_lua.inl b/src/webserver/civetweb/mod_lua.inl -index 5cc94318..59c4f2b3 100644 ---- a/src/webserver/civetweb/mod_lua.inl -+++ b/src/webserver/civetweb/mod_lua.inl -@@ -3634,7 +3634,7 @@ lua_init_optional_libraries(void) - lua_shared_init(); - - /* UUID library */ --#if !defined(_WIN32) -+#if !defined(_WIN32) && !defined(NO_DLOPEN) - lib_handle_uuid = dlopen("libuuid.so", RTLD_LAZY); - pf_uuid_generate.p = - (lib_handle_uuid ? dlsym(lib_handle_uuid, "uuid_generate") : 0); -@@ -3648,7 +3648,7 @@ static void - lua_exit_optional_libraries(void) - { - /* UUID library */ --#if !defined(_WIN32) -+#if !defined(_WIN32) && !defined(NO_DLOPEN) - if (lib_handle_uuid) { - dlclose(lib_handle_uuid); - } --- -2.34.1 - diff --git a/patch/civetweb/0001-Add-mbedTLS-debug-logging-hook.patch b/patch/civetweb/0001-Add-mbedTLS-debug-logging-hook.patch index ba7e8b2a..71f5c0ea 100644 --- a/patch/civetweb/0001-Add-mbedTLS-debug-logging-hook.patch +++ b/patch/civetweb/0001-Add-mbedTLS-debug-logging-hook.patch @@ -14,8 +14,8 @@ index 2ad76693..52724199 100644 --- a/src/webserver/civetweb/civetweb.h +++ b/src/webserver/civetweb/civetweb.h @@ -938,6 +938,10 @@ int my_send_http_error_headers(struct mg_connection *conn, - void FTL_rewrite_pattern(char *filename, size_t filename_buf_len, - const char *root, const char *uri); + void FTL_rewrite_pattern(char *filename, size_t filename_buf_len); + +#define MG_CONFIG_MBEDTLS_DEBUG 3 +void FTL_mbed_debug(void *user_param, int level, const char *file, @@ -36,9 +36,9 @@ index e72685f4..00b9280a 100644 + mbedtls_ssl_conf_dbg(conf, FTL_mbed_debug, NULL); + /****************************************************/ + - #ifdef MBEDTLS_SSL_PROTO_TLS1_3 - psa_status_t status = psa_crypto_init(); - if (status != PSA_SUCCESS) { + /* Initialize TLS key and cert */ + mbedtls_pk_init(&ctx->pkey); + mbedtls_ctr_drbg_init(&ctx->ctr); -- 2.34.1 diff --git a/patch/civetweb/0001-Allow-extended-ASCII-characters-in-URIs.patch b/patch/civetweb/0001-Allow-extended-ASCII-characters-in-URIs.patch deleted file mode 100644 index d54ab29e..00000000 --- a/patch/civetweb/0001-Allow-extended-ASCII-characters-in-URIs.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ebb27741b10ed2eac51ac356708800ae96cdd17a Mon Sep 17 00:00:00 2001 -From: DL6ER -Date: Tue, 31 Oct 2023 08:35:31 +0100 -Subject: [PATCH] Allow extended ASCII characters in URIs - -Signed-off-by: DL6ER ---- - src/webserver/civetweb/civetweb.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/webserver/civetweb/civetweb.c b/src/webserver/civetweb/civetweb.c -index 9b0c6308..5320c4d4 100644 ---- a/src/webserver/civetweb/civetweb.c -+++ b/src/webserver/civetweb/civetweb.c -@@ -10734,7 +10734,7 @@ skip_to_end_of_word_and_terminate(char **ppw, int eol) - { - /* Forward until a space is found - use isgraph here */ - /* See http://www.cplusplus.com/reference/cctype/ */ -- while (isgraph((unsigned char)**ppw)) { -+ while ((unsigned char)**ppw > 127 || isgraph((unsigned char)**ppw)) { - (*ppw)++; - } - -@@ -18473,7 +18473,7 @@ get_uri_type(const char *uri) - * and % encoded symbols. - */ - for (i = 0; uri[i] != 0; i++) { -- if (uri[i] < 33) { -+ if ((unsigned char)uri[i] < 33) { - /* control characters and spaces are invalid */ - return 0; - } --- -2.34.1 - diff --git a/patch/civetweb/0001-Log-debug-messages-to-webserver.log-when-debug.webse.patch b/patch/civetweb/0001-Log-debug-messages-to-webserver.log-when-debug.webse.patch index c396cb0f..9dc655e8 100644 --- a/patch/civetweb/0001-Log-debug-messages-to-webserver.log-when-debug.webse.patch +++ b/patch/civetweb/0001-Log-debug-messages-to-webserver.log-when-debug.webse.patch @@ -27,28 +27,6 @@ index 3df8eab9..9b0c6308 100644 #endif /* DEBUG */ #endif /* DEBUG_TRACE */ -diff --git a/src/webserver/civetweb/mod_mbedtls.inl b/src/webserver/civetweb/mod_mbedtls.inl -index 00b9280a..6a450ba3 100644 ---- a/src/webserver/civetweb/mod_mbedtls.inl -+++ b/src/webserver/civetweb/mod_mbedtls.inl -@@ -213,7 +213,7 @@ mbed_ssl_accept(mbedtls_ssl_context **ssl, - return -1; - } - -- DEBUG_TRACE("TLS connection %p accepted, state: %d", ssl, (*ssl)->state); -+ DEBUG_TRACE("TLS connection %p accepted, state: %d", ssl, (*ssl)->MBEDTLS_PRIVATE(state)); - return 0; - } - -@@ -239,7 +239,7 @@ mbed_ssl_handshake(mbedtls_ssl_context *ssl) - } - } - -- DEBUG_TRACE("TLS handshake rc: %d, state: %d", rc, ssl->state); -+ DEBUG_TRACE("TLS handshake rc: %d, state: %d", rc, ssl->MBEDTLS_PRIVATE(state)); - return rc; - } - -- 2.34.1 diff --git a/patch/civetweb/0001-Register-CSRF-token-in-conn-request_info.patch b/patch/civetweb/0001-Register-CSRF-token-in-conn-request_info.patch index 575c5649..50506f0f 100644 --- a/patch/civetweb/0001-Register-CSRF-token-in-conn-request_info.patch +++ b/patch/civetweb/0001-Register-CSRF-token-in-conn-request_info.patch @@ -6,9 +6,9 @@ Subject: [PATCH] Register CSRF token and is_authenticated boolean in conn->reque Signed-off-by: DL6ER --- src/webserver/civetweb/civetweb.c | 3 +++ - src/webserver/civetweb/civetweb.h | 2 ++ - src/webserver/civetweb/mod_lua.inl | 3 +++ - 3 files changed, 8 insertions(+) + src/webserver/civetweb/civetweb.h | 3 +++ + src/webserver/civetweb/mod_lua.inl | 4 ++++ + 3 files changed, 10 insertions(+) diff --git a/src/webserver/civetweb/civetweb.c b/src/webserver/civetweb/civetweb.c index 233b342a..f44b17ba 100644 @@ -20,7 +20,6 @@ index 233b342a..f44b17ba 100644 + /* Pi-hole addition */ + memset(conn->request_info.csrf_token, 0, sizeof(conn->request_info.csrf_token)); -+ reg_boolean(L, "is_authenticated", conn->request_info.is_authenticated != 0); + #if defined(USE_SERVER_STATS) conn->processing_time = 0; @@ -29,7 +28,7 @@ diff --git a/src/webserver/civetweb/civetweb.h b/src/webserver/civetweb/civetweb index 5b3d596b..291ef683 100644 --- a/src/webserver/civetweb/civetweb.h +++ b/src/webserver/civetweb/civetweb.h -@@ -183,6 +183,8 @@ struct mg_request_info { +@@ -183,6 +183,9 @@ struct mg_request_info { const char *acceptedWebSocketSubprotocol; /* websocket subprotocol, * accepted during handshake */ @@ -43,13 +42,14 @@ diff --git a/src/webserver/civetweb/mod_lua.inl b/src/webserver/civetweb/mod_lua index e9a13835..92066b3f 100644 --- a/src/webserver/civetweb/mod_lua.inl +++ b/src/webserver/civetweb/mod_lua.inl -@@ -2603,6 +2603,9 @@ prepare_lua_request_info_inner(const struct mg_connection *conn, lua_State *L) +@@ -2603,6 +2603,10 @@ prepare_lua_request_info_inner(const struct mg_connection *conn, lua_State *L) reg_string(L, "finger", conn->request_info.client_cert->finger); lua_rawset(L, -3); } + + /* Pi-hole addition */ + reg_string(L, "csrf_token", conn->request_info.csrf_token); ++ reg_boolean(L, "is_authenticated", conn->request_info.is_authenticated != 0); } diff --git a/src/webserver/civetweb/civetweb.c b/src/webserver/civetweb/civetweb.c index dced1362..6cef4dc4 100644 --- a/src/webserver/civetweb/civetweb.c +++ b/src/webserver/civetweb/civetweb.c @@ -239,9 +239,10 @@ static void DEBUG_TRACE_FUNC(const char *func, #endif #else +#include "log.h" #define DEBUG_TRACE(fmt, ...) \ - do { \ - } while (0) + if(debug_flags[DEBUG_WEBSERVER]) {\ + log_web("DEBUG: " fmt " (%s:%d)", ##__VA_ARGS__, short_path(__FILE__), __LINE__); } #endif /* DEBUG */ #endif /* DEBUG_TRACE */ @@ -4186,6 +4187,14 @@ send_additional_header(struct mg_connection *conn) if (header && header[0]) { mg_response_header_add_lines(conn, header); } + + /*************** Pi-hole modification ****************/ + if (pi_hole_extra_headers[0] != '\0') { + mg_response_header_add_lines(conn, pi_hole_extra_headers); + // Invalidate extra headers after having sent them to avoid repetitions + pi_hole_extra_headers[0] = '\0'; + } + /*****************************************************/ } @@ -4641,6 +4650,48 @@ mg_send_http_error_impl(struct mg_connection *conn, } +/************************************** Pi-hole method **************************************/ +CIVETWEB_API int +my_send_http_error_headers(struct mg_connection *conn, + int status, const char* mime_type, + long long content_length) +{ + if ((mime_type == NULL) || (*mime_type == 0)) { + /* No content type defined: default to text/html */ + mime_type = "text/html"; + } + + mg_response_header_start(conn, status); + send_no_cache_header(conn); + send_additional_header(conn); + mg_response_header_add(conn, "Content-Type", mime_type, -1); + if (content_length < 0) { + /* Size not known. Use chunked encoding (HTTP/1.x) */ + if (conn->protocol_type == PROTOCOL_TYPE_HTTP1) { + /* Only HTTP/1.x defines "chunked" encoding, HTTP/2 does not*/ + mg_response_header_add(conn, "Transfer-Encoding", "chunked", -1); + } + } else { + char len[32]; + int trunc = 0; + mg_snprintf(conn, + &trunc, + len, + sizeof(len), + "%" UINT64_FMT, + (uint64_t)content_length); + if (!trunc) { + /* Since 32 bytes is enough to hold any 64 bit decimal number, + * !trunc is always true */ + mg_response_header_add(conn, "Content-Length", len, -1); + } + } + mg_response_header_send(conn); + + return 0; +} +/********************************************************************************************/ + CIVETWEB_API int mg_send_http_error(struct mg_connection *conn, int status, const char *fmt, ...) { @@ -7887,6 +7938,8 @@ interpret_uri(struct mg_connection *conn, /* in/out: request (must be valid) */ roots[i], uri); + FTL_rewrite_pattern(filename, filename_buf_len - 1); + if (truncated) { goto interpret_cleanup; } @@ -17995,6 +18048,9 @@ reset_per_request_attributes(struct mg_connection *conn) } conn->request_info.local_uri = NULL; + /* Pi-hole addition */ + memset(conn->request_info.csrf_token, 0, sizeof(conn->request_info.csrf_token)); + #if defined(USE_SERVER_STATS) conn->processing_time = 0; #endif diff --git a/src/webserver/civetweb/civetweb.h b/src/webserver/civetweb/civetweb.h index 5ae6a0c7..e0ef3443 100644 --- a/src/webserver/civetweb/civetweb.h +++ b/src/webserver/civetweb/civetweb.h @@ -183,6 +183,9 @@ struct mg_request_info { const char *acceptedWebSocketSubprotocol; /* websocket subprotocol, * accepted during handshake */ + /* Pi-hole modification */ + char csrf_token[32]; + int is_authenticated; }; @@ -928,6 +931,23 @@ CIVETWEB_API int mg_send_http_error(struct mg_connection *conn, PRINTF_FORMAT_STRING(const char *fmt), ...) PRINTF_ARGS(3, 4); +/************************************** Pi-hole method **************************************/ +int my_send_http_error_headers(struct mg_connection *conn, + int status, const char* mime_type, + long long content_length); + +void FTL_rewrite_pattern(char *filename, unsigned long filename_buf_len); + + +#define MG_CONFIG_MBEDTLS_DEBUG 3 +void FTL_mbed_debug(void *user_param, int level, const char *file, + int line, const char *message); + +// Buffer used for additional "Set-Cookie" headers +#define PIHOLE_HEADERS_MAXLEN 1024 +extern char pi_hole_extra_headers[PIHOLE_HEADERS_MAXLEN]; +/********************************************************************************************/ + /* Send "HTTP 200 OK" response header. * After calling this function, use mg_write or mg_send_chunk to send the diff --git a/src/webserver/civetweb/handle_form.inl b/src/webserver/civetweb/handle_form.inl index 4de8d4f5..a7b7fc10 100644 --- a/src/webserver/civetweb/handle_form.inl +++ b/src/webserver/civetweb/handle_form.inl @@ -188,7 +188,7 @@ mg_handle_form_request(struct mg_connection *conn, char path[512]; char buf[MG_BUF_LEN]; /* Must not be smaller than ~900 */ int field_storage; - int buf_fill = 0; + size_t buf_fill = 0; int r; int field_count = 0; struct mg_file fstore = STRUCT_FILE_INITIALIZER; @@ -397,10 +397,10 @@ mg_handle_form_request(struct mg_connection *conn, int end_of_key_value_pair_found = 0; int get_block; - if ((size_t)buf_fill < (sizeof(buf) - 1)) { + if (buf_fill < (sizeof(buf) - 1)) { - size_t to_read = sizeof(buf) - 1 - (size_t)buf_fill; - r = mg_read(conn, buf + (size_t)buf_fill, to_read); + size_t to_read = sizeof(buf) - 1 - buf_fill; + r = mg_read(conn, buf + buf_fill, to_read); if ((r < 0) || ((r == 0) && all_data_read)) { /* read error */ return -1; @@ -529,11 +529,11 @@ mg_handle_form_request(struct mg_connection *conn, buf + (size_t)used, sizeof(buf) - (size_t)used); next = buf; - buf_fill -= (int)used; - if ((size_t)buf_fill < (sizeof(buf) - 1)) { + buf_fill -= used; + if (buf_fill < (sizeof(buf) - 1)) { - size_t to_read = sizeof(buf) - 1 - (size_t)buf_fill; - r = mg_read(conn, buf + (size_t)buf_fill, to_read); + size_t to_read = sizeof(buf) - 1 - buf_fill; + r = mg_read(conn, buf + buf_fill, to_read); if ((r < 0) || ((r == 0) && all_data_read)) { #if !defined(NO_FILESYSTEMS) /* read error */ @@ -592,7 +592,7 @@ mg_handle_form_request(struct mg_connection *conn, /* Proceed to next entry */ used = next - buf; memmove(buf, buf + (size_t)used, sizeof(buf) - (size_t)used); - buf_fill -= (int)used; + buf_fill -= used; } return field_count; @@ -682,12 +682,12 @@ mg_handle_form_request(struct mg_connection *conn, for (part_no = 0;; part_no++) { size_t towrite, fnlen, n; int get_block; - size_t to_read = sizeof(buf) - 1 - (size_t)buf_fill; + size_t to_read = sizeof(buf) - 1 - buf_fill; /* Unused without filesystems */ (void)n; - r = mg_read(conn, buf + (size_t)buf_fill, to_read); + r = mg_read(conn, buf + buf_fill, to_read); if ((r < 0) || ((r == 0) && all_data_read)) { /* read error */ mg_free(boundary); @@ -1001,12 +1001,12 @@ mg_handle_form_request(struct mg_connection *conn, #endif /* NO_FILESYSTEMS */ memmove(buf, hend + towrite, bl + 4); - buf_fill = (int)(bl + 4); + buf_fill = bl + 4; hend = buf; /* Read new data */ - to_read = sizeof(buf) - 1 - (size_t)buf_fill; - r = mg_read(conn, buf + (size_t)buf_fill, to_read); + to_read = sizeof(buf) - 1 - buf_fill; + r = mg_read(conn, buf + buf_fill, to_read); if ((r < 0) || ((r == 0) && all_data_read)) { #if !defined(NO_FILESYSTEMS) /* read error */ @@ -1025,7 +1025,7 @@ mg_handle_form_request(struct mg_connection *conn, /* buf_fill is at least 8 here */ /* Find boundary */ - next = search_boundary(buf, (size_t)buf_fill, boundary, bl); + next = search_boundary(buf, buf_fill, boundary, bl); if (!next && (r == 0)) { /* incomplete request */ @@ -1100,7 +1100,7 @@ mg_handle_form_request(struct mg_connection *conn, if (next) { used = next - buf + 2; memmove(buf, buf + (size_t)used, sizeof(buf) - (size_t)used); - buf_fill -= (int)used; + buf_fill -= used; } else { buf_fill = 0; } diff --git a/src/webserver/civetweb/mod_lua.inl b/src/webserver/civetweb/mod_lua.inl index 4ad3c38a..b3ad4b14 100644 --- a/src/webserver/civetweb/mod_lua.inl +++ b/src/webserver/civetweb/mod_lua.inl @@ -2606,6 +2606,10 @@ prepare_lua_request_info_inner(const struct mg_connection *conn, lua_State *L) reg_string(L, "finger", conn->request_info.client_cert->finger); lua_rawset(L, -3); } + + /* Pi-hole addition */ + reg_string(L, "csrf_token", conn->request_info.csrf_token); + reg_boolean(L, "is_authenticated", conn->request_info.is_authenticated != 0); } @@ -3226,10 +3230,9 @@ handle_lsp_request(struct mg_connection *conn, * "pkey); mbedtls_ctr_drbg_init(&ctx->ctr); mbedtls_x509_crt_init(&ctx->cert); +#ifdef MBEDTLS_PSA_CRYPTO_C + /* Initialize PSA crypto (mandatory with TLS 1.3) + * This must be done before calling any other PSA Crypto + * functions or they will fail with PSA_ERROR_BAD_STATE + */ + const psa_status_t status = psa_crypto_init(); + if (status != PSA_SUCCESS) { + DEBUG_TRACE("Failed to initialize PSA crypto, returned %d\n", (int) status); + return -1; + } +#endif + rc = mbedtls_ctr_drbg_seed(&ctx->ctr, mbedtls_entropy_func, &ctx->entropy, diff --git a/src/webserver/webserver.c b/src/webserver/webserver.c index e16b6329..6e3a3598 100644 --- a/src/webserver/webserver.c +++ b/src/webserver/webserver.c @@ -565,8 +565,9 @@ static char *append_to_path(char *path, const char *append) return new_path; } -void FTL_rewrite_pattern(char *filename, size_t filename_buf_len) +void FTL_rewrite_pattern(char *filename, unsigned long filename_buf_len) { + log_debug(DEBUG_API, "Rewriting filename: %s", filename); const bool trailing_slash = filename[strlen(filename) - 1] == '/'; char *filename_lp = NULL;