Call SetLastError() in ParseStringAclToAcl() to correct Conformance Test failure
Paul Bryan Roberts
pbronline-wine at yahoo.co.uk
Wed Sep 24 01:19:49 CDT 2008
From 2f6d33f2d66e252bbd6ad3bc0f3e93a1fb780485 Mon Sep 17 00:00:00 2001
From: Paul Bryan Roberts <pbronline-wine at yahoo.co.uk>
Date: Wed, 24 Sep 2008 06:57:33 +0100
Subject: Call SetLastError() in ParseStringAclToAcl() to correct
Conformance Test failure
---
dlls/advapi32/security.c | 7 ++++++-
dlls/advapi32/tests/security.c | 1 -
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index ef9ce6e..83bb08e 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -3735,7 +3735,11 @@ static BOOL ParseStringAclToAcl(LPCWSTR
StringAcl, LPDWORD lpdwFlags,
TRACE("%s\n", debugstr_w(StringAcl));
if (!StringAcl)
- return FALSE;
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ TRACE("StringAcl is NULL, returning FALSE\n");
+ return FALSE;
+ }
if (pAcl) /* pAce is only useful if we're setting values */
pAce = (PACCESS_ALLOWED_ACE) (pAcl + 1);
@@ -3828,6 +3832,7 @@ static BOOL ParseStringAclToAcl(LPCWSTR StringAcl,
LPDWORD lpdwFlags,
return TRUE;
lerr:
+ SetLastError(ERROR_INVALID_ACL);
WARN("Invalid ACE string format\n");
return FALSE;
}
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 99dbce8..7acfa69 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -2255,7 +2255,6 @@ static void test_ConvertStringSecurityDescriptor(void)
SetLastError(0xdeadbeef);
ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
"D:(A;;ROB;;;WD)", SDDL_REVISION_1, &pSD, NULL);
- todo_wine
ok(!ret && GetLastError() == ERROR_INVALID_ACL,
"ConvertStringSecurityDescriptorToSecurityDescriptor should
have failed with ERROR_INVALID_ACL instead of %d\n",
GetLastError());
--
1.5.4.3
More information about the wine-patches
mailing list