[v2 PATCH 1/2] hnetcfg: Improve INetFwAuthorizedApplication::get_ProcessImageFileName stub.
Nikolay Sivov
bunglehead at gmail.com
Tue Nov 29 01:12:25 CST 2016
On 29.11.2016 9:58, Alistair Leslie-Hughes wrote:
> From: Michael Müller <michael at fds-team.de>
>
> v2:
> Corrected error return values.
>
> Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
> ---
> dlls/hnetcfg/apps.c | 23 +++++++++++++++++++++--
> 1 file changed, 21 insertions(+), 2 deletions(-)
>
> diff --git a/dlls/hnetcfg/apps.c b/dlls/hnetcfg/apps.c
> index 2b8d78c..a89e6a7 100644
> --- a/dlls/hnetcfg/apps.c
> +++ b/dlls/hnetcfg/apps.c
> @@ -38,6 +38,7 @@ typedef struct fw_app
> {
> INetFwAuthorizedApplication INetFwAuthorizedApplication_iface;
> LONG refs;
> + BSTR filename;
> } fw_app;
>
> static inline fw_app *impl_from_INetFwAuthorizedApplication( INetFwAuthorizedApplication *iface )
> @@ -60,6 +61,7 @@ static ULONG WINAPI fw_app_Release(
> if (!refs)
> {
> TRACE("destroying %p\n", fw_app);
> + if (fw_app->filename) SysFreeString( fw_app->filename );
There's no need for this check.
> HeapFree( GetProcessHeap(), 0, fw_app );
> }
> return refs;
> @@ -252,7 +254,18 @@ static HRESULT WINAPI fw_app_get_ProcessImageFileName(
> fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
>
> FIXME("%p, %p\n", This, imageFileName);
> - return E_NOTIMPL;
> +
> + if (!imageFileName)
> + return E_POINTER;
> +
> + if (!This->filename)
> + {
> + *imageFileName = NULL;
> + return S_OK;
> + }
> +
> + *imageFileName = SysAllocString( This->filename );
> + return *imageFileName ? S_OK : E_OUTOFMEMORY;
> }
You can reduce this to
---
*imageFileName = SysAllocString( This->filename );
return *imageFileName || !This->filename ? S_OK : E_OUTOFMEMORY;
---
>
> static HRESULT WINAPI fw_app_put_ProcessImageFileName(
> @@ -262,7 +275,12 @@ static HRESULT WINAPI fw_app_put_ProcessImageFileName(
> fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
>
> FIXME("%p, %s\n", This, debugstr_w(imageFileName));
> - return S_OK;
> +
> + if (!imageFileName || !imageFileName[0])
> + return E_INVALIDARG;
> +
> + This->filename = SysAllocString( imageFileName );
> + return This->filename ? S_OK : E_OUTOFMEMORY;
> }
What happens if you call put_ProcessImageFileName() repeatedly?
More information about the wine-devel
mailing list