[programs/regedit/regproc.c] Strncpy elimination.

Peter Berg Larsen pebl at math.ku.dk
Sun Mar 27 13:48:18 CST 2005


First Hunk: I am not certain that KEY_MAX_LEN (= 1024) arrays always are
\0 terminated, but some place uses strlen on such arrays.

Changelog:
	Change strncpy to lstrcpynA.


Index: programs/regedit/regproc.c
===================================================================
RCS file: /home/wine/wine/programs/regedit/regproc.c,v
retrieving revision 1.17
diff -u -r1.17 regproc.c
--- programs/regedit/regproc.c	25 Feb 2005 14:07:56 -0000	1.17
+++ programs/regedit/regproc.c	26 Mar 2005 09:41:53 -0000
@@ -528,7 +528,7 @@
     if (lpClass == NULL)
         return (HKEY)ERROR_INVALID_PARAMETER;

-    strncpy(lpClassCopy, lpClass, KEY_MAX_LEN);
+    lstrcpynA(lpClassCopy, lpClass, KEY_MAX_LEN);

     classNameEnd  = strchr(lpClassCopy, '\\');    /* The class name ends by '\' */
     if (!classNameEnd)                            /* or the whole string */
@@ -792,8 +792,7 @@

         if (hRes == ERROR_SUCCESS) {
             lpsRes = HeapAlloc( GetProcessHeap(), 0, lLen);
-            strncpy(lpsRes, lpsData, lLen);
-            lpsRes[lLen-1]='\0';
+            lstrcpynA(lpsRes, lpsData, lLen);
         }
     } else {
         DWORD  dwLen  = KEY_MAX_LEN;
@@ -823,8 +822,7 @@
             case REG_SZ:
             case REG_EXPAND_SZ: {
                     lpsRes = HeapAlloc( GetProcessHeap(), 0, dwLen);
-                    strncpy(lpsRes, lpbData, dwLen);
-                    lpsRes[dwLen-1]='\0';
+                    lstrcpynA(lpsRes, lpbData, dwLen);
                     break;
                 }
             case REG_DWORD: {






More information about the wine-patches mailing list