[PATCH] kernel32/tests: Fix a crash on win9x (lpDefault is truncated inplace)

Detlef Riekenberg wine.dev at web.de
Sun Jul 27 08:29:31 CDT 2008


---
 dlls/kernel32/tests/profile.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c
index 91ff982..46dfe72 100644
--- a/dlls/kernel32/tests/profile.c
+++ b/dlls/kernel32/tests/profile.c
@@ -363,6 +363,7 @@ static void test_GetPrivateProfileString(void)
 {
     DWORD ret;
     CHAR buf[MAX_PATH];
+    CHAR def_val[MAX_PATH];
     CHAR path[MAX_PATH];
     CHAR windir[MAX_PATH];
     LPSTR tempfile;
@@ -416,14 +417,18 @@ static void test_GetPrivateProfileString(void)
 
     /* lpAppName is empty, lpDefault has trailing blank characters */
     lstrcpyA(buf, "kumquat");
-    ret = GetPrivateProfileStringA("", "name1", "default  ",
+    /* lpDefault must be writeable (trailing blanks are removed inplace in win9x) */
+    lstrcpyA(def_val, "default  ");
+    ret = GetPrivateProfileStringA("", "name1", def_val,
                                    buf, MAX_PATH, filename);
     ok(ret == 7, "Expected 7, got %d\n", ret);
     ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf);
 
     /* lpAppName is empty, many blank characters in lpDefault */
     lstrcpyA(buf, "kumquat");
-    ret = GetPrivateProfileStringA("", "name1", "one two  ",
+    /* lpDefault must be writeable (trailing blanks are removed inplace in win9x) */
+    lstrcpyA(def_val, "one two  ");
+    ret = GetPrivateProfileStringA("", "name1", def_val,
                                    buf, MAX_PATH, filename);
     ok(ret == 7, "Expected 7, got %d\n", ret);
     ok(!lstrcmpA(buf, "one two"), "Expected \"one two\", got \"%s\"\n", buf);
@@ -473,7 +478,9 @@ static void test_GetPrivateProfileString(void)
 
     /* lpKeyName is empty, lpDefault has trailing blank characters */
     lstrcpyA(buf, "kumquat");
-    ret = GetPrivateProfileStringA("section1", "", "default  ",
+    /* lpDefault must be writeable (trailing blanks are removed inplace in win9x) */
+    lstrcpyA(def_val, "default  ");
+    ret = GetPrivateProfileStringA("section1", "", def_val,
                                    buf, MAX_PATH, filename);
     ok(ret == 7, "Expected 7, got %d\n", ret);
     ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf);
-- 
1.5.4.3


--=-nN+S1VGeROzmnc7Jz2TQ--




More information about the wine-patches mailing list