From 62cd1e03c3d91ba010b29168dbd603ffe875b374 Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Wed, 22 Dec 2004 18:47:54 +0000 Subject: [PATCH] Blank the property buffers even if the property is not found. --- dlls/msi/package.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dlls/msi/package.c b/dlls/msi/package.c index 0ea4b66acf5..c6ecb4a1d5b 100644 --- a/dlls/msi/package.c +++ b/dlls/msi/package.c @@ -768,6 +768,10 @@ UINT MSI_GetPropertyW(MSIPACKAGE *package, LPCWSTR szName, UINT rc; rc = MSI_GetPropertyRow(package, szName, &row); + + if (*pchValueBuf > 0) + szValueBuf[0] = 0; + if (rc == ERROR_SUCCESS) { rc = MSI_RecordGetStringW(row,1,szValueBuf,pchValueBuf); @@ -796,6 +800,9 @@ UINT MSI_GetPropertyA(MSIPACKAGE *package, LPCSTR szName, UINT rc, len; LPWSTR szwName; + if (*pchValueBuf > 0) + szValueBuf[0] = 0; + len = MultiByteToWideChar( CP_ACP, 0, szName, -1, NULL, 0 ); szwName = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); if (!szwName) @@ -812,6 +819,9 @@ UINT MSI_GetPropertyA(MSIPACKAGE *package, LPCSTR szName, if (rc == ERROR_SUCCESS) TRACE("returning %s for property %s\n", debugstr_a(szValueBuf), debugstr_a(szName)); + else if (rc == ERROR_MORE_DATA) + TRACE("need %ld sized buffer for %s\n", *pchValueBuf, + debugstr_a(szName)); else { *pchValueBuf = 0;