Commit 0f44b3bd authored by Alex Henrie's avatar Alex Henrie Committed by Alexandre Julliard

msiexec: Use CRT allocation functions.

parent b1bd7234
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <stdio.h> #include <stdio.h>
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/heap.h"
#include "initguid.h" #include "initguid.h"
DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
...@@ -73,8 +72,8 @@ static void ShowUsage(int ExitCode) ...@@ -73,8 +72,8 @@ static void ShowUsage(int ExitCode)
No typo: The LPWSTR parameter must be a LPWSTR * for this mode */ No typo: The LPWSTR parameter must be a LPWSTR * for this mode */
len = LoadStringW(hmsi, 10, (LPWSTR) &msi_res, 0); len = LoadStringW(hmsi, 10, (LPWSTR) &msi_res, 0);
msi_res = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR)); msi_res = malloc((len + 1) * sizeof(WCHAR));
msiexec_help = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR) + sizeof(msiexec_version)); msiexec_help = malloc((len + 1) * sizeof(WCHAR) + sizeof(msiexec_version));
if (msi_res && msiexec_help) { if (msi_res && msiexec_help) {
*msi_res = 0; *msi_res = 0;
LoadStringW(hmsi, 10, msi_res, len + 1); LoadStringW(hmsi, 10, msi_res, len + 1);
...@@ -82,8 +81,8 @@ static void ShowUsage(int ExitCode) ...@@ -82,8 +81,8 @@ static void ShowUsage(int ExitCode)
swprintf(msiexec_help, len + 1 + ARRAY_SIZE(msiexec_version), msi_res, msiexec_version); swprintf(msiexec_help, len + 1 + ARRAY_SIZE(msiexec_version), msi_res, msiexec_version);
MsiMessageBoxW(0, msiexec_help, NULL, 0, GetUserDefaultLangID(), 0); MsiMessageBoxW(0, msiexec_help, NULL, 0, GetUserDefaultLangID(), 0);
} }
HeapFree(GetProcessHeap(), 0, msi_res); free(msi_res);
HeapFree(GetProcessHeap(), 0, msiexec_help); free(msiexec_help);
ExitProcess(ExitCode); ExitProcess(ExitCode);
} }
...@@ -101,7 +100,7 @@ static VOID StringListAppend(struct string_list **list, LPCWSTR str) ...@@ -101,7 +100,7 @@ static VOID StringListAppend(struct string_list **list, LPCWSTR str)
{ {
struct string_list *entry; struct string_list *entry;
entry = HeapAlloc(GetProcessHeap(), 0, FIELD_OFFSET(struct string_list, str[lstrlenW(str) + 1])); entry = malloc(FIELD_OFFSET(struct string_list, str[wcslen(str) + 1]));
if(!entry) if(!entry)
{ {
WINE_ERR("Out of memory!\n"); WINE_ERR("Out of memory!\n");
...@@ -134,7 +133,7 @@ static LPWSTR build_properties(struct string_list *property_list) ...@@ -134,7 +133,7 @@ static LPWSTR build_properties(struct string_list *property_list)
for(list = property_list; list; list = list->next) for(list = property_list; list; list = list->next)
len += lstrlenW(list->str) + 3; len += lstrlenW(list->str) + 3;
ret = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) ); ret = malloc(len * sizeof(WCHAR));
/* add a space before each string, and quote the value */ /* add a space before each string, and quote the value */
p = ret; p = ret;
...@@ -178,7 +177,7 @@ static LPWSTR build_transforms(struct string_list *transform_list) ...@@ -178,7 +177,7 @@ static LPWSTR build_transforms(struct string_list *transform_list)
for(list = transform_list; list; list = list->next) for(list = transform_list; list; list = list->next)
len += lstrlenW(list->str) + 1; len += lstrlenW(list->str) + 1;
ret = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) ); ret = malloc(len * sizeof(WCHAR));
/* add all the transforms with a semicolon between each one */ /* add all the transforms with a semicolon between each one */
p = ret; p = ret;
...@@ -218,10 +217,10 @@ static BOOL msi_strequal(LPCWSTR str1, LPCSTR str2) ...@@ -218,10 +217,10 @@ static BOOL msi_strequal(LPCWSTR str1, LPCSTR str2)
return FALSE; return FALSE;
if( lstrlenW(str1) != (len-1) ) if( lstrlenW(str1) != (len-1) )
return FALSE; return FALSE;
strW = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)*len); strW = malloc(sizeof(WCHAR) * len);
MultiByteToWideChar( CP_ACP, 0, str2, -1, strW, len); MultiByteToWideChar( CP_ACP, 0, str2, -1, strW, len);
ret = CompareStringW(GetThreadLocale(), NORM_IGNORECASE, str1, len, strW, len); ret = CompareStringW(GetThreadLocale(), NORM_IGNORECASE, str1, len, strW, len);
HeapFree(GetProcessHeap(), 0, strW); free(strW);
return (ret == CSTR_EQUAL); return (ret == CSTR_EQUAL);
} }
...@@ -246,10 +245,10 @@ static BOOL msi_strprefix(LPCWSTR str1, LPCSTR str2) ...@@ -246,10 +245,10 @@ static BOOL msi_strprefix(LPCWSTR str1, LPCSTR str2)
return FALSE; return FALSE;
if( lstrlenW(str1) < (len-1) ) if( lstrlenW(str1) < (len-1) )
return FALSE; return FALSE;
strW = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)*len); strW = malloc(sizeof(WCHAR) * len);
MultiByteToWideChar( CP_ACP, 0, str2, -1, strW, len); MultiByteToWideChar( CP_ACP, 0, str2, -1, strW, len);
ret = CompareStringW(GetThreadLocale(), NORM_IGNORECASE, str1, len-1, strW, len-1); ret = CompareStringW(GetThreadLocale(), NORM_IGNORECASE, str1, len-1, strW, len-1);
HeapFree(GetProcessHeap(), 0, strW); free(strW);
return (ret == CSTR_EQUAL); return (ret == CSTR_EQUAL);
} }
...@@ -388,7 +387,7 @@ static DWORD client_pid; ...@@ -388,7 +387,7 @@ static DWORD client_pid;
static DWORD CALLBACK custom_action_thread(void *arg) static DWORD CALLBACK custom_action_thread(void *arg)
{ {
GUID guid = *(GUID *)arg; GUID guid = *(GUID *)arg;
heap_free(arg); free(arg);
return __wine_msi_call_dll_function(client_pid, &guid); return __wine_msi_call_dll_function(client_pid, &guid);
} }
...@@ -429,7 +428,7 @@ static int custom_action_server(const WCHAR *arg) ...@@ -429,7 +428,7 @@ static int custom_action_server(const WCHAR *arg)
return 0; return 0;
} }
thread_guid = heap_alloc(sizeof(GUID)); thread_guid = malloc(sizeof(GUID));
memcpy(thread_guid, &guid, sizeof(GUID)); memcpy(thread_guid, &guid, sizeof(GUID));
thread = CreateThread(NULL, 0, custom_action_thread, thread_guid, 0, NULL); thread = CreateThread(NULL, 0, custom_action_thread, thread_guid, 0, NULL);
...@@ -533,13 +532,13 @@ static void process_args( WCHAR *cmdline, int *pargc, WCHAR ***pargv ) ...@@ -533,13 +532,13 @@ static void process_args( WCHAR *cmdline, int *pargc, WCHAR ***pargv )
*pargv = NULL; *pargv = NULL;
count = chomp( cmdline, NULL ); count = chomp( cmdline, NULL );
if (!(p = HeapAlloc( GetProcessHeap(), 0, (lstrlenW(cmdline) + count + 1) * sizeof(WCHAR) ))) if (!(p = malloc( (wcslen(cmdline) + count + 1) * sizeof(WCHAR) )))
return; return;
count = chomp( cmdline, p ); count = chomp( cmdline, p );
if (!(argv = HeapAlloc( GetProcessHeap(), 0, (count + 1) * sizeof(WCHAR *) ))) if (!(argv = malloc( (count + 1) * sizeof(WCHAR *) )))
{ {
HeapFree( GetProcessHeap(), 0, p ); free( p );
return; return;
} }
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
...@@ -569,7 +568,7 @@ static BOOL process_args_from_reg( const WCHAR *ident, int *pargc, WCHAR ***parg ...@@ -569,7 +568,7 @@ static BOOL process_args_from_reg( const WCHAR *ident, int *pargc, WCHAR ***parg
if(r == ERROR_SUCCESS && type == REG_SZ) if(r == ERROR_SUCCESS && type == REG_SZ)
{ {
int len = lstrlenW( *pargv[0] ); int len = lstrlenW( *pargv[0] );
if (!(buf = HeapAlloc( GetProcessHeap(), 0, sz + (len + 1) * sizeof(WCHAR) ))) if (!(buf = malloc( (len + 1) * sizeof(WCHAR) )))
{ {
RegCloseKey( hkey ); RegCloseKey( hkey );
return FALSE; return FALSE;
...@@ -582,7 +581,7 @@ static BOOL process_args_from_reg( const WCHAR *ident, int *pargc, WCHAR ***parg ...@@ -582,7 +581,7 @@ static BOOL process_args_from_reg( const WCHAR *ident, int *pargc, WCHAR ***parg
process_args(buf, pargc, pargv); process_args(buf, pargc, pargv);
ret = TRUE; ret = TRUE;
} }
HeapFree(GetProcessHeap(), 0, buf); free(buf);
} }
RegCloseKey(hkey); RegCloseKey(hkey);
return ret; return ret;
...@@ -594,7 +593,7 @@ static WCHAR *get_path_with_extension(const WCHAR *package_name) ...@@ -594,7 +593,7 @@ static WCHAR *get_path_with_extension(const WCHAR *package_name)
unsigned int p; unsigned int p;
WCHAR *path; WCHAR *path;
if (!(path = heap_alloc(lstrlenW(package_name) * sizeof(WCHAR) + sizeof(ext)))) if (!(path = malloc(wcslen(package_name) * sizeof(WCHAR) + sizeof(ext))))
{ {
WINE_ERR("No memory.\n"); WINE_ERR("No memory.\n");
return NULL; return NULL;
...@@ -606,7 +605,7 @@ static WCHAR *get_path_with_extension(const WCHAR *package_name) ...@@ -606,7 +605,7 @@ static WCHAR *get_path_with_extension(const WCHAR *package_name)
--p; --p;
if (path[p] == '.') if (path[p] == '.')
{ {
heap_free(path); free(path);
return NULL; return NULL;
} }
lstrcatW(path, ext); lstrcatW(path, ext);
...@@ -1071,7 +1070,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine ...@@ -1071,7 +1070,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
&& (path = get_path_with_extension(PackageName))) && (path = get_path_with_extension(PackageName)))
{ {
ReturnCode = MsiInstallProductW(path, Properties); ReturnCode = MsiInstallProductW(path, Properties);
heap_free(path); free(path);
} }
} }
} }
...@@ -1085,7 +1084,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine ...@@ -1085,7 +1084,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
&& (path = get_path_with_extension(PackageName))) && (path = get_path_with_extension(PackageName)))
{ {
ReturnCode = MsiReinstallProductW(path, RepairMode); ReturnCode = MsiReinstallProductW(path, RepairMode);
heap_free(path); free(path);
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment