Detlef Riekenberg : kernel32/tests: Fix a crash on win9x ( lpDefault is truncated inplace).

Alexandre Julliard julliard at winehq.org
Mon Jul 28 08:07:19 CDT 2008


Module: wine
Branch: master
Commit: 5437f4ce9ce9c6bb61e425c93e6497ea58d8d2bd
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5437f4ce9ce9c6bb61e425c93e6497ea58d8d2bd

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Sun Jul 27 15:29:31 2008 +0200

kernel32/tests: Fix a crash on win9x (lpDefault is truncated inplace).

---

 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);




More information about the wine-cvs mailing list