mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-02 20:18:28 +00:00
msi: Avoid creating zero-length string values in the registry.
This commit is contained in:
parent
31ed6473be
commit
06bf8ea291
3 changed files with 10 additions and 5 deletions
|
@ -2426,7 +2426,7 @@ static UINT ITERATE_WriteRegistryValues(MSIRECORD *row, LPVOID param)
|
|||
{
|
||||
static const WCHAR szEmpty[] = {0};
|
||||
value_data = (LPSTR)strdupW(szEmpty);
|
||||
size = 0;
|
||||
size = sizeof(szEmpty);
|
||||
type = REG_SZ;
|
||||
}
|
||||
|
||||
|
@ -3772,8 +3772,10 @@ static UINT ACTION_PublishFeatures(MSIPACKAGE *package)
|
|||
size = strlenW(feature->Feature_Parent)*sizeof(WCHAR);
|
||||
if (!absent)
|
||||
{
|
||||
static const WCHAR emptyW[] = {0};
|
||||
size += sizeof(WCHAR);
|
||||
RegSetValueExW(hukey,feature->Feature,0,REG_SZ,
|
||||
(LPBYTE)feature->Feature_Parent,size);
|
||||
(LPBYTE)(feature->Feature_Parent ? feature->Feature_Parent : emptyW),size);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -381,7 +381,7 @@ DWORD msi_version_str_to_dword(LPCWSTR p)
|
|||
|
||||
LPWSTR msi_version_dword_to_str(DWORD version)
|
||||
{
|
||||
const WCHAR fmt[] = { '%','u','.','%','u','.','%','u',0 };
|
||||
static const WCHAR fmt[] = { '%','u','.','%','u','.','%','u',0 };
|
||||
LPWSTR str = msi_alloc(20);
|
||||
sprintfW(str, fmt,
|
||||
(version&0xff000000)>>24,
|
||||
|
@ -392,7 +392,10 @@ LPWSTR msi_version_dword_to_str(DWORD version)
|
|||
|
||||
LONG msi_reg_set_val_str( HKEY hkey, LPCWSTR name, LPCWSTR value )
|
||||
{
|
||||
DWORD len = value ? (lstrlenW(value) + 1) * sizeof (WCHAR) : 0;
|
||||
static const WCHAR emptyW[] = {0};
|
||||
DWORD len;
|
||||
if (!value) value = emptyW;
|
||||
len = (lstrlenW(value) + 1) * sizeof (WCHAR);
|
||||
return RegSetValueExW( hkey, name, 0, REG_SZ, (const BYTE *)value, len );
|
||||
}
|
||||
|
||||
|
|
|
@ -822,7 +822,7 @@ UINT WINAPI MsiSourceListSetInfoW( LPCWSTR szProduct, LPCWSTR szUserSid,
|
|||
}
|
||||
else if (strcmpW(INSTALLPROPERTY_PACKAGENAMEW, szProperty)==0)
|
||||
{
|
||||
DWORD size = lstrlenW(szValue)*sizeof(WCHAR);
|
||||
DWORD size = (lstrlenW(szValue) + 1) * sizeof(WCHAR);
|
||||
rc = RegSetValueExW(sourcekey, INSTALLPROPERTY_PACKAGENAMEW, 0,
|
||||
REG_SZ, (const BYTE *)szValue, size);
|
||||
if (rc != ERROR_SUCCESS)
|
||||
|
|
Loading…
Reference in a new issue