winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
November 2007
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
3 participants
757 discussions
Start a n
N
ew thread
Rok Mandeljc : wnaspi32: Print error when device cannot be opened.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: b6a9257077168b44b35bff4644921486c0c5b220 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b6a9257077168b44b35bff464…
Author: Rok Mandeljc <rok.mandeljc(a)email.si> Date: Thu Nov 1 08:07:18 2007 +0100 wnaspi32: Print error when device cannot be opened. --- dlls/wnaspi32/aspi.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/dlls/wnaspi32/aspi.c b/dlls/wnaspi32/aspi.c index c4bc1bb..07f6bf6 100644 --- a/dlls/wnaspi32/aspi.c +++ b/dlls/wnaspi32/aspi.c @@ -237,6 +237,10 @@ int SCSI_OpenDevice( int h, int c, int t, int d ) TRACE("Opening device %s mode O_RDWR\n",devstr); fd = open(devstr, O_RDWR); + if (fd == -1) { + char *errstring = strerror(errno); + ERR("Failed to open device %s: %s\n", devstr, errstring); + } return fd; }
1
0
0
0
Lei Zhang : comctl32: Fix typo in rebar.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: 019016f90fcbef28059df3376ff425caad1b691b URL:
http://source.winehq.org/git/wine.git/?a=commit;h=019016f90fcbef28059df3376…
Author: Lei Zhang <thestig(a)google.com> Date: Thu Nov 1 22:45:45 2007 -0700 comctl32: Fix typo in rebar. --- dlls/comctl32/rebar.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/comctl32/rebar.c b/dlls/comctl32/rebar.c index 9f11146..7cf11bf 100644 --- a/dlls/comctl32/rebar.c +++ b/dlls/comctl32/rebar.c @@ -2510,7 +2510,7 @@ REBAR_SetBandInfoT(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnic else Str_SetPtrAtoW(&wstr, (LPSTR)lprbbi->lpText); - if (REBAR_strdifW(wstr, lprbbi->lpText)) { + if (REBAR_strdifW(wstr, lpBand->lpText)) { Free(lpBand->lpText); lpBand->lpText = wstr; bChanged = TRUE;
1
0
0
0
Hans Leidekker : ntdll: Fix calculation of tape position offsets.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: 9bc08be37b9558e39a13fda5ad61c2ee66b45acd URL:
http://source.winehq.org/git/wine.git/?a=commit;h=9bc08be37b9558e39a13fda5a…
Author: Hans Leidekker <hans(a)it.vu.nl> Date: Fri Nov 2 10:34:11 2007 +0100 ntdll: Fix calculation of tape position offsets. Reported by Gerald Pfeifer. --- dlls/ntdll/tape.c | 25 +++++++++++++++---------- 1 files changed, 15 insertions(+), 10 deletions(-) diff --git a/dlls/ntdll/tape.c b/dlls/ntdll/tape.c index 1a32efb..6242b94 100644 --- a/dlls/ntdll/tape.c +++ b/dlls/ntdll/tape.c @@ -404,11 +404,16 @@ static NTSTATUS TAPE_SetPosition( int fd, const TAPE_SET_POSITION *data ) #ifdef HAVE_SYS_MTIO_H struct mtop cmd; - TRACE( "fd: %d method: 0x%08x partition: 0x%08x offset: 0x%08x immediate: 0x%02x\n", - fd, data->Method, data->Partition, data->Offset.u.LowPart, data->Immediate ); + TRACE( "fd: %d method: 0x%08x partition: 0x%08x offset: 0x%x%08x immediate: 0x%02x\n", + fd, data->Method, data->Partition, (DWORD)(data->Offset.QuadPart >> 32), + (DWORD)data->Offset.QuadPart, data->Immediate ); - if (data->Offset.u.HighPart > 0) + if (sizeof(cmd.mt_count) < sizeof(data->Offset.QuadPart) && + (int)data->Offset.QuadPart != data->Offset.QuadPart) + { + ERR("Offset too large or too small\n"); return STATUS_INVALID_PARAMETER; + } switch (data->Method) { @@ -418,7 +423,7 @@ static NTSTATUS TAPE_SetPosition( int fd, const TAPE_SET_POSITION *data ) #ifdef MTSEEK case TAPE_ABSOLUTE_BLOCK: cmd.mt_op = MTSEEK; - cmd.mt_count = data->Offset.u.LowPart; + cmd.mt_count = data->Offset.QuadPart; break; #endif #ifdef MTEOM @@ -427,24 +432,24 @@ static NTSTATUS TAPE_SetPosition( int fd, const TAPE_SET_POSITION *data ) break; #endif case TAPE_SPACE_FILEMARKS: - if (data->Offset.u.LowPart >= 0) { + if (data->Offset.QuadPart >= 0) { cmd.mt_op = MTFSF; - cmd.mt_count = data->Offset.u.LowPart; + cmd.mt_count = data->Offset.QuadPart; } else { cmd.mt_op = MTBSF; - cmd.mt_count = -data->Offset.u.LowPart; + cmd.mt_count = -data->Offset.QuadPart; } break; #if defined(MTFSS) && defined(MTBSS) case TAPE_SPACE_SETMARKS: - if (data->Offset.u.LowPart >= 0) { + if (data->Offset.QuadPart >= 0) { cmd.mt_op = MTFSS; - cmd.mt_count = data->Offset.u.LowPart; + cmd.mt_count = data->Offset.QuadPart; } else { cmd.mt_op = MTBSS; - cmd.mt_count = -data->Offset.u.LowPart; + cmd.mt_count = -data->Offset.QuadPart; } break; #endif
1
0
0
0
Paul Vriens : advapi32/tests: Make tests run on win98 again.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: cac17c455dbb8e6f131fd1e4731b3a2295843f0d URL:
http://source.winehq.org/git/wine.git/?a=commit;h=cac17c455dbb8e6f131fd1e47…
Author: Paul Vriens <paul.vriens.wine(a)gmail.com> Date: Fri Nov 2 11:33:36 2007 +0100 advapi32/tests: Make tests run on win98 again. --- dlls/advapi32/tests/security.c | 39 ++++++++++++++++++++++++--------------- 1 files changed, 24 insertions(+), 15 deletions(-) diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c index b666c74..0d269b5 100644 --- a/dlls/advapi32/tests/security.c +++ b/dlls/advapi32/tests/security.c @@ -59,6 +59,9 @@ typedef struct _OBJECT_BASIC_INFORMATION { #define expect_eq(expr, value, type, format) { type ret = expr; ok((value) == ret, #expr " expected " format " got " format "\n", (value), (ret)); } +static BOOL (WINAPI *pAddAccessAllowedAceEx)(PACL, DWORD, DWORD, DWORD, PSID); +static BOOL (WINAPI *pAddAccessDeniedAceEx)(PACL, DWORD, DWORD, DWORD, PSID); +static BOOL (WINAPI *pAddAuditAccessAceEx)(PACL, DWORD, DWORD, DWORD, PSID, BOOL, BOOL); typedef VOID (WINAPI *fnBuildTrusteeWithSidA)( PTRUSTEEA pTrustee, PSID pSid ); typedef VOID (WINAPI *fnBuildTrusteeWithNameA)( PTRUSTEEA pTrustee, LPSTR pName ); typedef VOID (WINAPI *fnBuildTrusteeWithObjectsAndNameA)( PTRUSTEEA pTrustee, @@ -96,6 +99,8 @@ typedef NTSTATUS (WINAPI *fnLsaFreeMemory)(PVOID); typedef NTSTATUS (WINAPI *fnLsaOpenPolicy)(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE); static NTSTATUS (WINAPI *pNtQueryObject)(HANDLE,OBJECT_INFORMATION_CLASS,PVOID,ULONG,PULONG); static DWORD (WINAPI *pSetEntriesInAclW)(ULONG, PEXPLICIT_ACCESSW, PACL, PACL*); +static BOOL (WINAPI *pSetSecurityDescriptorControl)(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, + SECURITY_DESCRIPTOR_CONTROL); static HMODULE hmod; static int myARGC; @@ -132,14 +137,18 @@ static void init(void) pNtQueryObject = (void *)GetProcAddress( hntdll, "NtQueryObject" ); hmod = GetModuleHandle("advapi32.dll"); + pAddAccessAllowedAceEx = (void *)GetProcAddress(hmod, "AddAccessAllowedAceEx"); + pAddAccessDeniedAceEx = (void *)GetProcAddress(hmod, "AddAccessDeniedAceEx"); + pAddAuditAccessAceEx = (void *)GetProcAddress(hmod, "AddAuditAccessAceEx"); pConvertStringSecurityDescriptorToSecurityDescriptorA = (void *)GetProcAddress(hmod, "ConvertStringSecurityDescriptorToSecurityDescriptorA" ); pConvertSecurityDescriptorToStringSecurityDescriptorA = (void *)GetProcAddress(hmod, "ConvertSecurityDescriptorToStringSecurityDescriptorA" ); - pMakeSelfRelativeSD = (void *)GetProcAddress(hmod, "MakeSelfRelativeSD"); + pCreateWellKnownSid = (fnCreateWellKnownSid)GetProcAddress( hmod, "CreateWellKnownSid" ); pGetNamedSecurityInfoA = (void *)GetProcAddress(hmod, "GetNamedSecurityInfoA"); + pMakeSelfRelativeSD = (void *)GetProcAddress(hmod, "MakeSelfRelativeSD"); pSetEntriesInAclW = (void *)GetProcAddress(hmod, "SetEntriesInAclW"); - pCreateWellKnownSid = (fnCreateWellKnownSid)GetProcAddress( hmod, "CreateWellKnownSid" ); + pSetSecurityDescriptorControl = (void *)GetProcAddress(hmod, "SetSecurityDescriptorControl"); myARGC = winetest_get_mainargs( &myARGV ); } @@ -837,7 +846,7 @@ static void test_AccessCheck(void) ok(!Access, "Should have failed to grant any access, got 0x%08x\n", Access); res = AddAccessAllowedAce(Acl, ACL_REVISION, KEY_READ, EveryoneSid); - ok(res, "AddAccessAllowedAceEx failed with error %d\n", GetLastError()); + ok(res, "AddAccessAllowedAce failed with error %d\n", GetLastError()); res = AddAccessDeniedAce(Acl, ACL_REVISION, KEY_SET_VALUE, AdminSid); ok(res, "AddAccessDeniedAce failed with error %d\n", GetLastError()); @@ -901,7 +910,7 @@ static void test_AccessCheck(void) /* test INHERIT_ONLY_ACE */ ret = InitializeAcl(Acl, 256, ACL_REVISION); ok(ret, "InitializeAcl failed with error %d\n", GetLastError()); - ret = AddAccessAllowedAceEx(Acl, ACL_REVISION, INHERIT_ONLY_ACE, KEY_READ, EveryoneSid); + ret = pAddAccessAllowedAceEx(Acl, ACL_REVISION, INHERIT_ONLY_ACE, KEY_READ, EveryoneSid); ok(ret, "AddAccessAllowedAceEx failed with error %d\n", GetLastError()); ret = AccessCheck(SecurityDescriptor, Token, KEY_READ, &Mapping, @@ -1165,7 +1174,7 @@ static void test_CreateWellKnownSid() ok(pCreateWellKnownSid(i, value->without_domain ? NULL : domainsid, sid_buffer, &cb), "Couldn't create well known sid %d\n", i); expect_eq(GetSidLengthRequired(*GetSidSubAuthorityCount(sid_buffer)), cb, DWORD, "%d"); ok(IsValidSid(sid_buffer), "The sid is not valid\n"); - ok(ConvertSidToStringSid(sid_buffer, &str), "Couldn't convert SID to string\n"); + ok(pConvertSidToStringSidA(sid_buffer, &str), "Couldn't convert SID to string\n"); ok(strcmp(str, value->sid_string) == 0, "SID mismatch - expected %s, got %s\n", value->sid_string, str); LocalFree(str); @@ -1736,7 +1745,7 @@ static void test_process_security(void) res = AddAccessDeniedAce(Acl, ACL_REVISION, PROCESS_VM_READ, AdminSid); ok(res, "AddAccessDeniedAce failed with error %d\n", GetLastError()); res = AddAccessAllowedAce(Acl, ACL_REVISION, PROCESS_ALL_ACCESS, AdminSid); - ok(res, "AddAccessAllowedAceEx failed with error %d\n", GetLastError()); + ok(res, "AddAccessAllowedAce failed with error %d\n", GetLastError()); SecurityDescriptor = HeapAlloc(GetProcessHeap(), 0, SECURITY_DESCRIPTOR_MIN_LENGTH); res = InitializeSecurityDescriptor(SecurityDescriptor, SECURITY_DESCRIPTOR_REVISION); @@ -2182,7 +2191,7 @@ static void test_ConvertSecurityDescriptorToString() ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_RESULT_AND_FREE("O:SY"); - ConvertStringSidToSid("S-1-5-21-93476-23408-4576", &psid); + pConvertStringSidToSidA("S-1-5-21-93476-23408-4576", &psid); SetSecurityDescriptorGroup(&desc, psid, TRUE); ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576"); @@ -2200,16 +2209,16 @@ static void test_ConvertSecurityDescriptorToString() ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:"); - ConvertStringSidToSid("S-1-5-6", &psid2); - AddAccessAllowedAceEx(pacl, ACL_REVISION, NO_PROPAGATE_INHERIT_ACE, 0xf0000000, psid2); + pConvertStringSidToSidA("S-1-5-6", &psid2); + pAddAccessAllowedAceEx(pacl, ACL_REVISION, NO_PROPAGATE_INHERIT_ACE, 0xf0000000, psid2); ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:(A;NP;GAGXGWGR;;;SU)"); - AddAccessAllowedAceEx(pacl, ACL_REVISION, INHERIT_ONLY_ACE|INHERITED_ACE, 0x00000003, psid2); + pAddAccessAllowedAceEx(pacl, ACL_REVISION, INHERIT_ONLY_ACE|INHERITED_ACE, 0x00000003, psid2); ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)"); - AddAccessDeniedAceEx(pacl, ACL_REVISION, OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE, 0xffffffff, psid); + pAddAccessDeniedAceEx(pacl, ACL_REVISION, OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE, 0xffffffff, psid); ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)(D;OICI;0xffffffff;;;S-1-5-21-93476-23408-4576)"); @@ -2221,12 +2230,12 @@ static void test_ConvertSecurityDescriptorToString() CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:S:"); SetSecurityDescriptorDacl(&desc, TRUE, NULL, FALSE); - AddAuditAccessAceEx(pacl, ACL_REVISION, VALID_INHERIT_FLAGS, KEY_READ|KEY_WRITE, psid2, TRUE, TRUE); + pAddAuditAccessAceEx(pacl, ACL_REVISION, VALID_INHERIT_FLAGS, KEY_READ|KEY_WRITE, psid2, TRUE, TRUE); ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_ONE_OF_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:S:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)", /* XP */ "O:SYG:S-1-5-21-93476-23408-4576D:NO_ACCESS_CONTROLS:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)" /* Vista */); - AddAuditAccessAceEx(pacl, ACL_REVISION, NO_PROPAGATE_INHERIT_ACE, FILE_GENERIC_READ|FILE_GENERIC_WRITE, psid2, TRUE, FALSE); + pAddAuditAccessAceEx(pacl, ACL_REVISION, NO_PROPAGATE_INHERIT_ACE, FILE_GENERIC_READ|FILE_GENERIC_WRITE, psid2, TRUE, FALSE); ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_ONE_OF_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:S:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)(AU;NPSA;0x12019f;;;SU)", /* XP */ "O:SYG:S-1-5-21-93476-23408-4576D:NO_ACCESS_CONTROLS:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)(AU;NPSA;0x12019f;;;SU)" /* Vista */); @@ -2244,13 +2253,13 @@ static void test_PrivateObjectSecurity(void) ULONG len; PSECURITY_DESCRIPTOR buf; - ok(ConvertStringSecurityDescriptorToSecurityDescriptorA( + ok(pConvertStringSecurityDescriptorToSecurityDescriptorA( "O:SY" "G:S-1-5-21-93476-23408-4576" "D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)(D;OICI;0xffffffff;;;S-1-5-21-93476-23408-4576)" "S:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)(AU;NPSA;0x12019f;;;SU)", SDDL_REVISION_1, &sec, &dwDescSize), "Creating descriptor failed\n"); buf = HeapAlloc(GetProcessHeap(), 0, dwDescSize); - SetSecurityDescriptorControl(sec, SE_DACL_PROTECTED, SE_DACL_PROTECTED); + pSetSecurityDescriptorControl(sec, SE_DACL_PROTECTED, SE_DACL_PROTECTED); GetSecurityDescriptorControl(sec, &ctrl, &dwRevision); todo_wine expect_eq(ctrl, 0x9014, int, "%x");
1
0
0
0
Juan Lang : crypt32: Use consistent error checking.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: 159c8af56a330126cfb0eac7794ef8af51373ff5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=159c8af56a330126cfb0eac77…
Author: Juan Lang <juan.lang(a)gmail.com> Date: Thu Nov 1 20:20:33 2007 -0700 crypt32: Use consistent error checking. --- dlls/crypt32/str.c | 44 ++++++++++++++++++++++---------------------- 1 files changed, 22 insertions(+), 22 deletions(-) diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c index a7de4df..8e19dc8 100644 --- a/dlls/crypt32/str.c +++ b/dlls/crypt32/str.c @@ -549,10 +549,10 @@ static void CRYPT_KeynameKeeperFromTokenW(struct KeynameKeeper *keeper, TRACE("Keyname is %s\n", debugstr_w(keeper->keyName)); } -static DWORD CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token, +static BOOL CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token, LPCWSTR *ppszError) { - DWORD ret = ERROR_SUCCESS; + BOOL ret = TRUE; while (*str && isspaceW(*str)) str++; @@ -568,7 +568,8 @@ static DWORD CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token, TRACE("missing equals char at %s\n", debugstr_w(token->start)); if (ppszError) *ppszError = token->start; - ret = CRYPT_E_INVALID_X500_STRING; + SetLastError(CRYPT_E_INVALID_X500_STRING); + ret = FALSE; } } else @@ -577,10 +578,10 @@ static DWORD CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token, } /* Assumes separators are characters in the 0-255 range */ -static DWORD CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators, +static BOOL CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators, struct X500TokenW *token, LPCWSTR *ppszError) { - DWORD ret = ERROR_SUCCESS; + BOOL ret = TRUE; TRACE("(%s, %s, %p, %p)\n", debugstr_w(str), debugstr_w(separators), token, ppszError); @@ -594,7 +595,7 @@ static DWORD CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators, { token->end = NULL; str++; - while (!token->end && !ret) + while (!token->end && ret) { while (*str && *str != '"') str++; @@ -610,7 +611,8 @@ static DWORD CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators, TRACE("unterminated quote at %s\n", debugstr_w(str)); if (ppszError) *ppszError = str; - ret = CRYPT_E_INVALID_X500_STRING; + SetLastError(CRYPT_E_INVALID_X500_STRING); + ret = FALSE; } } } @@ -630,7 +632,8 @@ static DWORD CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators, TRACE("missing value at %s\n", debugstr_w(str)); if (ppszError) *ppszError = str; - ret = CRYPT_E_INVALID_X500_STRING; + SetLastError(CRYPT_E_INVALID_X500_STRING); + ret = FALSE; } return ret; } @@ -765,7 +768,7 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, CERT_NAME_INFO info = { 0, NULL }; LPCWSTR str; struct KeynameKeeper keeper; - DWORD i, error = ERROR_SUCCESS; + DWORD i; BOOL ret = TRUE; TRACE("(%08x, %s, %08x, %p, %p, %p, %p)\n", dwCertEncodingType, @@ -774,12 +777,12 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, CRYPT_InitializeKeynameKeeper(&keeper); str = pszX500; - while (str && *str && !error && ret) + while (str && *str && ret) { struct X500TokenW token; - error = CRYPT_GetNextKeyW(str, &token, ppszError); - if (!error && token.start) + ret = CRYPT_GetNextKeyW(str, &token, ppszError); + if (ret && token.start) { PCCRYPT_OID_INFO keyOID; @@ -790,7 +793,8 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, { if (ppszError) *ppszError = token.start; - error = CRYPT_E_INVALID_X500_STRING; + SetLastError(CRYPT_E_INVALID_X500_STRING); + ret = FALSE; } else { @@ -801,7 +805,8 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, { if (ppszError) *ppszError = str; - error = CRYPT_E_INVALID_X500_STRING; + SetLastError(CRYPT_E_INVALID_X500_STRING); + ret = FALSE; } else { @@ -820,9 +825,9 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, sep = crlfSep; else sep = allSeps; - error = CRYPT_GetNextValueW(str, dwStrType, sep, &token, + ret = CRYPT_GetNextValueW(str, dwStrType, sep, &token, ppszError); - if (!error) + if (ret) { str = token.end; ret = CRYPT_ValueToRDN(dwCertEncodingType, &info, @@ -833,18 +838,13 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, } } CRYPT_FreeKeynameKeeper(&keeper); - if (!error) + if (ret) { if (ppszError) *ppszError = NULL; ret = CryptEncodeObjectEx(dwCertEncodingType, X509_NAME, &info, 0, NULL, pbEncoded, pcbEncoded); } - else - { - SetLastError(error); - ret = FALSE; - } for (i = 0; i < info.cRDN; i++) { DWORD j;
1
0
0
0
Juan Lang : crypt32: Free memory on all paths.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: 644dedb75da87c1909010422737f1c2ea3a9d4e5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=644dedb75da87c19090104227…
Author: Juan Lang <juan.lang(a)gmail.com> Date: Thu Nov 1 20:05:31 2007 -0700 crypt32: Free memory on all paths. --- dlls/crypt32/str.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c index d7d9bb4..a7de4df 100644 --- a/dlls/crypt32/str.c +++ b/dlls/crypt32/str.c @@ -839,21 +839,21 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, *ppszError = NULL; ret = CryptEncodeObjectEx(dwCertEncodingType, X509_NAME, &info, 0, NULL, pbEncoded, pcbEncoded); - for (i = 0; i < info.cRDN; i++) - { - DWORD j; - - for (j = 0; j < info.rgRDN[i].cRDNAttr; j++) - LocalFree(info.rgRDN[i].rgRDNAttr[j].Value.pbData); - CryptMemFree(info.rgRDN[i].rgRDNAttr); - } - CryptMemFree(info.rgRDN); } else { SetLastError(error); ret = FALSE; } + for (i = 0; i < info.cRDN; i++) + { + DWORD j; + + for (j = 0; j < info.rgRDN[i].cRDNAttr; j++) + LocalFree(info.rgRDN[i].rgRDNAttr[j].Value.pbData); + CryptMemFree(info.rgRDN[i].rgRDNAttr); + } + CryptMemFree(info.rgRDN); return ret; }
1
0
0
0
Juan Lang : crypt32: Set last error on alloc failure.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: 81a382ac31d8726d0f3d9285dd12db8bc51e78b5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=81a382ac31d8726d0f3d9285d…
Author: Juan Lang <juan.lang(a)gmail.com> Date: Thu Nov 1 20:04:36 2007 -0700 crypt32: Set last error on alloc failure. --- dlls/crypt32/str.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c index 9817b9e..d7d9bb4 100644 --- a/dlls/crypt32/str.c +++ b/dlls/crypt32/str.c @@ -749,9 +749,12 @@ static BOOL CRYPT_ValueToRDN(DWORD dwCertEncodingType, PCERT_NAME_INFO info, ret = CRYPT_EncodeValue(dwCertEncodingType, value, &info->rgRDN[info->cRDN].rgRDNAttr[0].Value, types, ppszError); } - } - if (ret) + else + SetLastError(ERROR_OUTOFMEMORY); info->cRDN++; + } + else + SetLastError(ERROR_OUTOFMEMORY); return ret; }
1
0
0
0
Lei Zhang : comctl32: Fix uninitialized, unused variables.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: bf313ee857b9167cb26b39040d6184f50b36c18f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=bf313ee857b9167cb26b39040…
Author: Lei Zhang <thestig(a)google.com> Date: Thu Nov 1 18:50:24 2007 -0700 comctl32: Fix uninitialized, unused variables. --- dlls/comctl32/status.c | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dlls/comctl32/status.c b/dlls/comctl32/status.c index 4748083..dcfe801 100644 --- a/dlls/comctl32/status.c +++ b/dlls/comctl32/status.c @@ -633,7 +633,6 @@ STATUSBAR_SetMinHeight (STATUS_INFO *infoPtr, INT height) RECT parent_rect; HTHEME theme; - GetClientRect (infoPtr->Notify, &parent_rect); infoPtr->height = height + infoPtr->verticalBorder; if ((theme = GetWindowTheme (infoPtr->Self))) @@ -651,13 +650,14 @@ STATUSBAR_SetMinHeight (STATUS_INFO *infoPtr, INT height) ReleaseDC (infoPtr->Self, hdc); } - width = parent_rect.right - parent_rect.left; - x = parent_rect.left; - y = parent_rect.bottom - infoPtr->height; - MoveWindow (infoPtr->Self, parent_rect.left, - parent_rect.bottom - infoPtr->height, - width, infoPtr->height, TRUE); - STATUSBAR_SetPartBounds (infoPtr); + if (GetClientRect (infoPtr->Notify, &parent_rect)) + { + width = parent_rect.right - parent_rect.left; + x = parent_rect.left; + y = parent_rect.bottom - infoPtr->height; + MoveWindow (infoPtr->Self, x, y, width, infoPtr->height, TRUE); + STATUSBAR_SetPartBounds (infoPtr); + } } return TRUE; @@ -1191,13 +1191,13 @@ STATUSBAR_WMSize (STATUS_INFO *infoPtr, WORD flags) if (GetWindowLongW(infoPtr->Self, GWL_STYLE) & CCS_NORESIZE) return FALSE; /* width and height don't apply */ - GetClientRect (infoPtr->Notify, &parent_rect); + if (!GetClientRect (infoPtr->Notify, &parent_rect)) + return FALSE; + width = parent_rect.right - parent_rect.left; x = parent_rect.left; y = parent_rect.bottom - infoPtr->height; - MoveWindow (infoPtr->Self, parent_rect.left, - parent_rect.bottom - infoPtr->height, - width, infoPtr->height, TRUE); + MoveWindow (infoPtr->Self, x, y, width, infoPtr->height, TRUE); STATUSBAR_SetPartBounds (infoPtr); return TRUE; }
1
0
0
0
Lei Zhang : comctl32: Datetime should close its monthcal when the monthcal loses focus.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: 5d05f7fc74294e1e4f72fe0e1cbeb0aae204f904 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=5d05f7fc74294e1e4f72fe0e1…
Author: Lei Zhang <thestig(a)google.com> Date: Thu Nov 1 15:34:35 2007 -0700 comctl32: Datetime should close its monthcal when the monthcal loses focus. --- dlls/comctl32/datetime.c | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 deletions(-) diff --git a/dlls/comctl32/datetime.c b/dlls/comctl32/datetime.c index 40c2ca5..8689dd5 100644 --- a/dlls/comctl32/datetime.c +++ b/dlls/comctl32/datetime.c @@ -72,6 +72,7 @@ typedef struct RECT checkbox; /* checkbox allowing the control to be enabled/disabled */ RECT calbutton; /* button that toggles the dropdown of the monthcal control */ BOOL bCalDepressed; /* TRUE = cal button is depressed */ + int bDropdownEnabled; int select; HFONT hFont; int nrFieldsAllocated; @@ -739,7 +740,10 @@ DATETIME_LButtonDown (DATETIME_INFO *infoPtr, WORD wKey, INT x, INT y) TRACE("update calendar %04d/%02d/%02d\n", lprgSysTimeArray->wYear, lprgSysTimeArray->wMonth, lprgSysTimeArray->wDay); SendMessageW(infoPtr->hMonthCal, MCM_SETCURSEL, 0, (LPARAM)(&infoPtr->date)); - ShowWindow(infoPtr->hMonthCal, SW_SHOW); + + if (infoPtr->bDropdownEnabled) + ShowWindow(infoPtr->hMonthCal, SW_SHOW); + infoPtr->bDropdownEnabled = TRUE; } TRACE ("dt:%p mc:%p mc parent:%p, desktop:%p\n", @@ -776,6 +780,10 @@ DATETIME_Paint (DATETIME_INFO *infoPtr, HDC hdc) } else { DATETIME_Refresh (infoPtr, hdc); } + + /* Not a click on the dropdown box, enabled it */ + infoPtr->bDropdownEnabled = TRUE; + return 0; } @@ -1063,6 +1071,19 @@ DATETIME_SetFocus (DATETIME_INFO *infoPtr, HWND lostFocus) { TRACE("got focus from %p\n", lostFocus); + /* if monthcal is open and it loses focus, close monthcal */ + if (infoPtr->hMonthCal && (lostFocus == infoPtr->hMonthCal) && \ + IsWindowVisible(infoPtr->hMonthCal)) + { + ShowWindow(infoPtr->hMonthCal, SW_HIDE); + DATETIME_SendSimpleNotify(infoPtr, DTN_CLOSEUP); + /* note: this get triggered even if monthcal loses focus to a dropdown + * box click, which occurs without an intermediate WM_PAINT call + */ + infoPtr->bDropdownEnabled = FALSE; + return 0; + } + if (infoPtr->haveFocus == 0) { DATETIME_SendSimpleNotify (infoPtr, NM_SETFOCUS); infoPtr->haveFocus = DTHT_GOTFOCUS; @@ -1207,6 +1228,7 @@ DATETIME_Create (HWND hwnd, const CREATESTRUCTW *lpcs) infoPtr->buflen = (int *) Alloc (infoPtr->nrFieldsAllocated * sizeof(int)); infoPtr->hwndNotify = lpcs->hwndParent; infoPtr->select = -1; /* initially, nothing is selected */ + infoPtr->bDropdownEnabled = TRUE; DATETIME_StyleChanged(infoPtr, GWL_STYLE, &ss); DATETIME_SetFormatW (infoPtr, 0);
1
0
0
0
Rob Shearman : rpcrt4: Add a test for the pointers in [in,out] pointer structs not changing when the pointers aren't NULL.
by Alexandre Julliard
02 Nov '07
02 Nov '07
Module: wine Branch: master Commit: 18c16a802741eaacd14a1f98b3862b1e2795e8a2 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=18c16a802741eaacd14a1f98b…
Author: Rob Shearman <rob(a)codeweavers.com> Date: Thu Nov 1 22:04:43 2007 +0000 rpcrt4: Add a test for the pointers in [in,out] pointer structs not changing when the pointers aren't NULL. --- dlls/rpcrt4/tests/server.c | 19 +++++++++++++++++++ dlls/rpcrt4/tests/server.idl | 7 +++++++ 2 files changed, 26 insertions(+), 0 deletions(-) diff --git a/dlls/rpcrt4/tests/server.c b/dlls/rpcrt4/tests/server.c index d0f4eef..79a0e32 100644 --- a/dlls/rpcrt4/tests/server.c +++ b/dlls/rpcrt4/tests/server.c @@ -472,6 +472,16 @@ s_hash_bstr(bstr_t b) } void +s_get_name(name_t *name) +{ + const char bossman[] = "Jeremy White"; + memcpy(name->name, bossman, min(name->size, sizeof(bossman))); + /* ensure nul-termination */ + if (name->size < sizeof(bossman)) + name->name[name->size - 1] = 0; +} + +void s_stop(void) { ok(RPC_S_OK == RpcMgmtStopServerListening(NULL), "RpcMgmtStopServerListening\n"); @@ -800,6 +810,8 @@ pointer_tests(void) cpuints_t cpus; short bstr_data[] = { 5, 'H', 'e', 'l', 'l', 'o' }; bstr_t bstr = &bstr_data[1]; + name_t name; + void *buffer; ok(test_list_length(list) == 3, "RPC test_list_length\n"); ok(square_puint(p1) == 121, "RPC square_puint\n"); @@ -843,6 +855,13 @@ pointer_tests(void) ok(hash_bstr(bstr) == s_hash_bstr(bstr), "RPC hash_bstr_data\n"); free_list(list); + + name.size = 10; + name.name = buffer = HeapAlloc(GetProcessHeap(), 0, name.size); + get_name(&name); + todo_wine + ok(name.name == buffer, "[in,out] pointer should have stayed as %p but instead changed to %p\n", name.name, buffer); + HeapFree(GetProcessHeap(), 0, name.name); } static int diff --git a/dlls/rpcrt4/tests/server.idl b/dlls/rpcrt4/tests/server.idl index fa1ea15..15402ee 100644 --- a/dlls/rpcrt4/tests/server.idl +++ b/dlls/rpcrt4/tests/server.idl @@ -290,5 +290,12 @@ cpp_quote("#endif") typedef [wire_marshal(wire_bstr_t)] short *bstr_t; unsigned hash_bstr(bstr_t s); + typedef struct + { + [string, size_is(size)] char *name; + unsigned int size; + } name_t; + void get_name([in,out] name_t *name); + void stop(void); }
1
0
0
0
← Newer
1
...
66
67
68
69
70
71
72
...
76
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Results per page:
10
25
50
100
200