]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
checksrc: Add LoadLibrary to the banned functions list
authorJay Satiro <raysatiro@yahoo.com>
Mon, 6 Jun 2016 01:07:03 +0000 (21:07 -0400)
committerJay Satiro <raysatiro@yahoo.com>
Mon, 6 Jun 2016 01:07:03 +0000 (21:07 -0400)
LoadLibrary was supplanted by Curl_load_library for security
reasons in 6df916d.

lib/checksrc.pl
lib/system_win32.c

index aacb242b5d829543c18efd7610e2d5f75426b478..f31083a6354aa91e4b82eee77b190dc4b408c071 100755 (executable)
@@ -421,7 +421,13 @@ sub scanfile {
         }
 
         # scan for use of banned functions
-        if($l =~ /^(.*\W)(sprintf|vsprintf|strcat|strncat|_mbscat|_mbsncat|_tcscat|_tcsncat|wcscat|wcsncat|gets)\s*\(/) {
+        if($l =~ /^(.*\W)
+                   (gets|
+                    v?sprintf|
+                    (str|_mbs|_tcs|_wcs)n?cat|
+                    LoadLibrary(Ex)?(A|W)?)
+                   \s*\(
+                 /x) {
             checkwarn("BANNEDFUNC",
                       $line, length($1), $file, $ol,
                       "use of $2 is banned");
index 4cc5f236274050672d889f7ffba8ed484768b19a..2ba7d0bc1c2198e167943ebbe5e50d976ed709ee 100644 (file)
@@ -249,10 +249,12 @@ HMODULE Curl_load_library(LPCTSTR filename)
      there is. Note: Both back slashes and forward slashes have been supported
      since the earlier days of DOS at an API level although they are not
      supported by command prompt */
-  if(_tcspbrk(filename, TEXT("\\/")))
+  if(_tcspbrk(filename, TEXT("\\/"))) {
+    /** !checksrc! disable BANNEDFUNC 1 **/
     hModule = pLoadLibraryEx ?
       pLoadLibraryEx(filename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) :
       LoadLibrary(filename);
+  }
   /* Detect if KB2533623 is installed, as LOAD_LIBARY_SEARCH_SYSTEM32 is only
      supported on Windows Vista, Windows Server 2008, Windows 7 and Windows
      Server 2008 R2 with this patch or natively on Windows 8 and above */
@@ -274,6 +276,7 @@ HMODULE Curl_load_library(LPCTSTR filename)
         _tcscpy(path + _tcslen(path), filename);
 
         /* Load the DLL from the Windows system directory */
+        /** !checksrc! disable BANNEDFUNC 1 **/
         hModule = pLoadLibraryEx ?
           pLoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) :
           LoadLibrary(path);