From c4fcab28e42813e4e93a2b3eb9f445db14ca2006 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 11 Aug 2021 21:31:07 +1000 Subject: [PATCH] Fix issue #5506 "WebServer serveStatic () can cause LoadProhibited exception in _svfprintf_r" (#5508) "Using a Core Debug Level of Verbose and the WebServer serveStatic() function with the default value of nullptr for its cache_header argument, results in a LoadProhibited exception in _svfprintf_r(). This is because serveStatic() calls log_v() with cache_header corresponding to a "%s" in its format but without checking that cache_header is not nullptr, and then logv() (indirectly) calls _svfprintf_r(). On the other hand, with a Core Debug Level other than Verbose, this does not occur." Changed serveStatic() to the check value of cache_header and if it is nullptr, instead pass an empty string to log_v(). --- libraries/WebServer/src/detail/RequestHandlersImpl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/WebServer/src/detail/RequestHandlersImpl.h b/libraries/WebServer/src/detail/RequestHandlersImpl.h index 27a2a8d3..69901574 100644 --- a/libraries/WebServer/src/detail/RequestHandlersImpl.h +++ b/libraries/WebServer/src/detail/RequestHandlersImpl.h @@ -69,7 +69,7 @@ public: , _cache_header(cache_header) { _isFile = fs.exists(path); - log_v("StaticRequestHandler: path=%s uri=%s isFile=%d, cache_header=%s\r\n", path, uri, _isFile, cache_header); + log_v("StaticRequestHandler: path=%s uri=%s isFile=%d, cache_header=%s\r\n", path, uri, _isFile, cache_header ? cache_header : ""); // issue 5506 - cache_header can be nullptr _baseUriLength = _uri.length(); }