From a09e1cb53be78f2b1d387bb13f6dfcb62223faf7 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Mon, 4 Jul 2011 09:19:37 +0000
Subject: [PATCH] Switch the HTTP Webserver project to use the safer strlcpy()
 instead of strncpy() to save on manual null-termination.

---
 Projects/Webserver/Lib/HTTPServerApp.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/Projects/Webserver/Lib/HTTPServerApp.c b/Projects/Webserver/Lib/HTTPServerApp.c
index d7585fe90..37377d0af 100644
--- a/Projects/Webserver/Lib/HTTPServerApp.c
+++ b/Projects/Webserver/Lib/HTTPServerApp.c
@@ -181,10 +181,7 @@ static void HTTPServerApp_OpenRequestedFile(void)
 	}
 
 	/* Copy over the requested filename */
-	strncpy(AppState->HTTPServer.FileName, &RequestedFileName[1], sizeof(AppState->HTTPServer.FileName));
-
-	/* Ensure filename is null-terminated */
-	AppState->HTTPServer.FileName[sizeof(AppState->HTTPServer.FileName) - 1] = 0x00;
+	strlcpy(AppState->HTTPServer.FileName, &RequestedFileName[1], sizeof(AppState->HTTPServer.FileName));
 
 	/* Determine the length of the URI so that it can be checked to see if it is a directory */
 	uint8_t FileNameLen = strlen(AppState->HTTPServer.FileName);
@@ -192,11 +189,8 @@ static void HTTPServerApp_OpenRequestedFile(void)
 	/* If the URI is a directory, append the default filename */
 	if ((AppState->HTTPServer.FileName[FileNameLen - 1] == '/') || !(FileNameLen))
 	{
-		strncpy_P(&AppState->HTTPServer.FileName[FileNameLen], DefaultDirFileName,
+		strlcpy_P(&AppState->HTTPServer.FileName[FileNameLen], DefaultDirFileName,
 		          (sizeof(AppState->HTTPServer.FileName) - FileNameLen));
-		
-		/* Ensure altered filename is still null-terminated */
-		AppState->HTTPServer.FileName[sizeof(AppState->HTTPServer.FileName) - 1] = 0x00;
 	}
 
 	/* Try to open the file from the Dataflash disk */
-- 
GitLab