Switch the HTTP Webserver project to use the safer strlcpy() instead of strncpy(...
authorDean Camera <dean@fourwalledcubicle.com>
Mon, 4 Jul 2011 09:19:37 +0000 (09:19 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Mon, 4 Jul 2011 09:19:37 +0000 (09:19 +0000)
Projects/Webserver/Lib/HTTPServerApp.c

index d7585fe..37377d0 100644 (file)
@@ -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 */