From f933dd8b4f4905910512be58f811c6632fa0d675 Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Sun, 16 Dec 2007 20:23:27 -0600 Subject: [PATCH] msi: Validate the parameters of MsiOpenPackage. --- dlls/msi/package.c | 8 +++++++- dlls/msi/tests/package.c | 5 +---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/dlls/msi/package.c b/dlls/msi/package.c index 5c42cd86f10..58861d3c207 100644 --- a/dlls/msi/package.c +++ b/dlls/msi/package.c @@ -932,9 +932,15 @@ UINT WINAPI MsiOpenPackageExW(LPCWSTR szPackage, DWORD dwOptions, MSIHANDLE *phP TRACE("%s %08x %p\n", debugstr_w(szPackage), dwOptions, phPackage ); - if( szPackage == NULL ) + if( !szPackage || !phPackage ) return ERROR_INVALID_PARAMETER; + if ( !*szPackage ) + { + FIXME("Should create an empty database and package."); + return ERROR_FUNCTION_FAILED; + } + if( dwOptions ) FIXME("dwOptions %08x not supported\n", dwOptions); diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index f4b0a4deffc..af9b7867200 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -2056,10 +2056,7 @@ static void test_msipackage(void) /* NULL hProduct */ r = MsiOpenPackage(msifile, NULL); - todo_wine - { - ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); - } + ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r); name[0]='#'; name[1]=0;