Zebediah Figura : hnetcfg: Store the long path in INetFwAuthorizedApplication_put_ProcessImageFileName ().
Module: wine Branch: master Commit: e070ff88d6a9d711faf5dd8f71c68c1b754b1f2d URL: https://source.winehq.org/git/wine.git/?a=commit;h=e070ff88d6a9d711faf5dd8f7... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Jun 28 17:39:36 2018 +0200 hnetcfg: Store the long path in INetFwAuthorizedApplication_put_ProcessImageFileName(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/hnetcfg/apps.c | 14 ++++++++++++-- dlls/hnetcfg/tests/policy.c | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/dlls/hnetcfg/apps.c b/dlls/hnetcfg/apps.c index 69eabd6..21e1007 100644 --- a/dlls/hnetcfg/apps.c +++ b/dlls/hnetcfg/apps.c @@ -268,9 +268,9 @@ static HRESULT WINAPI fw_app_put_ProcessImageFileName( { fw_app *This = impl_from_INetFwAuthorizedApplication( iface ); UNIVERSAL_NAME_INFOW *info; + DWORD sz, longsz; WCHAR *path; DWORD res; - DWORD sz; FIXME("%p, %s\n", This, debugstr_w(image)); @@ -298,9 +298,19 @@ static HRESULT WINAPI fw_app_put_ProcessImageFileName( sz = GetFullPathNameW(image, 0, NULL, NULL); if (!(path = heap_alloc(++sz * sizeof(WCHAR)))) return E_OUTOFMEMORY; - GetFullPathNameW(image, sz, path, NULL); + longsz = GetLongPathNameW(path, path, sz); + if (longsz > sz) + { + if (!(path = heap_realloc(path, longsz * sizeof(WCHAR)))) + { + heap_free(path); + return E_OUTOFMEMORY; + } + GetLongPathNameW(path, path, longsz); + } + SysFreeString( This->filename ); This->filename = SysAllocString(path); heap_free(path); diff --git a/dlls/hnetcfg/tests/policy.c b/dlls/hnetcfg/tests/policy.c index 389be16..4e90ceb 100644 --- a/dlls/hnetcfg/tests/policy.c +++ b/dlls/hnetcfg/tests/policy.c @@ -140,6 +140,7 @@ static void test_NetFwAuthorizedApplication(void) SysFreeString(bstr); GetFullPathNameW(image, ARRAY_SIZE(fullpath), fullpath, NULL); + GetLongPathNameW(fullpath, fullpath, ARRAY_SIZE(fullpath)); info = (UNIVERSAL_NAME_INFOW *)&netpath; sz = sizeof(netpath);
participants (1)
-
Alexandre Julliard