ReactOS.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
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
List overview
Download
Ros-diffs
April 2020
----- 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
ros-diffs@reactos.org
45 participants
395 discussions
Start a n
N
ew thread
[reactos] 01/01: [Win32SS] Fix Mask for Draw Frame States
by James Tabor
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=acf135d16d2aede3c12ed…
commit acf135d16d2aede3c12edc4ef47033baf5540751 Author: James Tabor <james.tabor(a)reactos.org> AuthorDate: Sun Apr 5 21:11:44 2020 -0500 Commit: James Tabor <james.tabor(a)reactos.org> CommitDate: Sun Apr 5 21:11:44 2020 -0500 [Win32SS] Fix Mask for Draw Frame States Fixes drawing of caption bar buttons. See CORE-8808. --- win32ss/user/ntuser/draw.c | 25 +++++++++++++------------ win32ss/user/user32/windows/draw.c | 24 ++++++++++++------------ 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/win32ss/user/ntuser/draw.c b/win32ss/user/ntuser/draw.c index eb97e1e1f16..dd4a0ff4a62 100644 --- a/win32ss/user/ntuser/draw.c +++ b/win32ss/user/ntuser/draw.c @@ -12,6 +12,7 @@ // #include <win32k.h> +DBG_DEFAULT_CHANNEL(UserDefwnd); /* These tables are used in: * UITOOLS_DrawDiagEdge() @@ -757,7 +758,7 @@ BOOL FASTCALL UITOOLS95_DFC_ButtonCheckRadio(HDC dc, LPRECT r, UINT uFlags, BOOL /* Ported from WINE20020904 */ BOOL FASTCALL UITOOLS95_DrawFrameButton(HDC hdc, LPRECT rc, UINT uState) { - switch(uState & 0xff) + switch(uState & 0x1f) { case DFCS_BUTTONPUSH: return UITOOLS95_DFC_ButtonPush(hdc, rc, uState); @@ -771,10 +772,10 @@ BOOL FASTCALL UITOOLS95_DrawFrameButton(HDC hdc, LPRECT rc, UINT uState) case DFCS_BUTTONRADIO: return UITOOLS95_DFC_ButtonCheckRadio(hdc, rc, uState, TRUE); -/* + default: - DbgPrint("Invalid button state=0x%04x\n", uState); -*/ + ERR("Invalid button state=0x%04x\n", uState); + } return FALSE; } @@ -787,7 +788,7 @@ BOOL FASTCALL UITOOLS95_DrawFrameCaption(HDC dc, LPRECT r, UINT uFlags) RECT myr; INT bkmode; WCHAR Symbol; - switch(uFlags & 0xff) + switch(uFlags & 0xf) { case DFCS_CAPTIONCLOSE: Symbol = 'r'; @@ -805,6 +806,7 @@ BOOL FASTCALL UITOOLS95_DrawFrameCaption(HDC dc, LPRECT r, UINT uFlags) Symbol = '2'; break; default: + ERR("Invalid caption; flags=0x%04x\n", uFlags); return FALSE; } IntDrawRectEdge(dc,r,(uFlags&DFCS_PUSHED) ? EDGE_SUNKEN : EDGE_RAISED, BF_RECT | BF_MIDDLE | BF_SOFT); @@ -854,7 +856,7 @@ BOOL FASTCALL UITOOLS95_DrawFrameScroll(HDC dc, LPRECT r, UINT uFlags) RECT myr; INT bkmode; WCHAR Symbol; - switch(uFlags & 0xff) + switch(uFlags & 0x1f) { case DFCS_SCROLLCOMBOBOX: case DFCS_SCROLLDOWN: @@ -908,6 +910,7 @@ BOOL FASTCALL UITOOLS95_DrawFrameScroll(HDC dc, LPRECT r, UINT uFlags) GreDeleteObject(hFont); return TRUE; default: + ERR("Invalid scroll; flags=0x%04x\n", uFlags); return FALSE; } IntDrawRectEdge(dc, r, (uFlags & DFCS_PUSHED) ? EDGE_SUNKEN : EDGE_RAISED, (uFlags&DFCS_FLAT) | BF_MIDDLE | BF_RECT); @@ -957,7 +960,7 @@ BOOL FASTCALL UITOOLS95_DrawFrameMenu(HDC dc, LPRECT r, UINT uFlags) RECT myr; INT cxy; cxy = UITOOLS_MakeSquareRect(r, &myr); - switch(uFlags & 0xff) + switch(uFlags & 0x1f) { case DFCS_MENUARROWUP: Symbol = '5'; @@ -984,9 +987,7 @@ BOOL FASTCALL UITOOLS95_DrawFrameMenu(HDC dc, LPRECT r, UINT uFlags) break; default: -/* - DbgPrint("Invalid menu; flags=0x%04x\n", uFlags); -*/ + ERR("Invalid menu; flags=0x%04x\n", uFlags); return FALSE; } /* acquire ressources only if valid menu */ @@ -1000,8 +1001,8 @@ BOOL FASTCALL UITOOLS95_DrawFrameMenu(HDC dc, LPRECT r, UINT uFlags) /* save font */ hOldFont = NtGdiSelectFont(dc, hFont); - if ((uFlags & 0xff) == DFCS_MENUARROWUP || - (uFlags & 0xff) == DFCS_MENUARROWDOWN ) + if ((uFlags & 0x1f) == DFCS_MENUARROWUP || + (uFlags & 0x1f) == DFCS_MENUARROWDOWN ) { #if 0 if (uFlags & DFCS_INACTIVE) diff --git a/win32ss/user/user32/windows/draw.c b/win32ss/user/user32/windows/draw.c index 62798c89b26..ff0fb72bff4 100644 --- a/win32ss/user/user32/windows/draw.c +++ b/win32ss/user/user32/windows/draw.c @@ -777,7 +777,7 @@ static BOOL UITOOLS95_DFC_ButtonCheckRadio(HDC dc, LPRECT r, UINT uFlags, BOOL R /* Ported from WINE20020904 */ static BOOL UITOOLS95_DrawFrameButton(HDC hdc, LPRECT rc, UINT uState) { - switch(uState & 0xff) + switch(uState & 0x1f) { case DFCS_BUTTONPUSH: return UITOOLS95_DFC_ButtonPush(hdc, rc, uState); @@ -791,10 +791,10 @@ static BOOL UITOOLS95_DrawFrameButton(HDC hdc, LPRECT rc, UINT uState) case DFCS_BUTTONRADIO: return UITOOLS95_DFC_ButtonCheckRadio(hdc, rc, uState, TRUE); -/* + default: - DbgPrint("Invalid button state=0x%04x\n", uState); -*/ + ERR("Invalid button state=0x%04x\n", uState); + } return FALSE; @@ -808,7 +808,7 @@ static BOOL UITOOLS95_DrawFrameCaption(HDC dc, LPRECT r, UINT uFlags) RECT myr; INT bkmode; TCHAR Symbol; - switch(uFlags & 0xff) + switch(uFlags & 0xf) { case DFCS_CAPTIONCLOSE: Symbol = 'r'; @@ -826,7 +826,7 @@ static BOOL UITOOLS95_DrawFrameCaption(HDC dc, LPRECT r, UINT uFlags) Symbol = '2'; break; default: - WARN("Invalid caption; flags=0x%04x\n", uFlags); + ERR("Invalid caption; flags=0x%04x\n", uFlags); return FALSE; } IntDrawRectEdge(dc,r,(uFlags&DFCS_PUSHED) ? EDGE_SUNKEN : EDGE_RAISED, BF_RECT | BF_MIDDLE | BF_SOFT, 1); @@ -875,7 +875,7 @@ static BOOL UITOOLS95_DrawFrameScroll(HDC dc, LPRECT r, UINT uFlags) RECT myr; INT bkmode; TCHAR Symbol; - switch(uFlags & 0xff) + switch(uFlags & 0x1f) { case DFCS_SCROLLCOMBOBOX: case DFCS_SCROLLDOWN: @@ -929,7 +929,7 @@ static BOOL UITOOLS95_DrawFrameScroll(HDC dc, LPRECT r, UINT uFlags) DeleteObject(hFont); return TRUE; default: - WARN("Invalid scroll; flags=0x%04x\n", uFlags); + ERR("Invalid scroll; flags=0x%04x\n", uFlags); return FALSE; } IntDrawRectEdge(dc, r, (uFlags & DFCS_PUSHED) ? EDGE_SUNKEN : EDGE_RAISED, (uFlags&DFCS_FLAT) | BF_MIDDLE | BF_RECT, 1); @@ -979,7 +979,7 @@ static BOOL UITOOLS95_DrawFrameMenu(HDC dc, LPRECT r, UINT uFlags) RECT myr; INT cxy; cxy = UITOOLS_MakeSquareRect(r, &myr); - switch(uFlags & 0xff) + switch(uFlags & 0x1f) { case DFCS_MENUARROWUP: Symbol = '5'; @@ -1006,7 +1006,7 @@ static BOOL UITOOLS95_DrawFrameMenu(HDC dc, LPRECT r, UINT uFlags) break; default: - WARN("Invalid menu; flags=0x%04x\n", uFlags); + ERR("Invalid menu; flags=0x%04x\n", uFlags); return FALSE; } /* acquire ressources only if valid menu */ @@ -1020,8 +1020,8 @@ static BOOL UITOOLS95_DrawFrameMenu(HDC dc, LPRECT r, UINT uFlags) /* save font */ hOldFont = SelectObject(dc, hFont); - if ((uFlags & 0xff) == DFCS_MENUARROWUP || - (uFlags & 0xff) == DFCS_MENUARROWDOWN ) + if ((uFlags & 0x1f) == DFCS_MENUARROWUP || + (uFlags & 0x1f) == DFCS_MENUARROWDOWN ) { #if 0 if (uFlags & DFCS_INACTIVE)
4 years, 8 months
1
0
0
0
[reactos] 01/01: [DEVMGR] CDeviceView::RecurseChildDevices: Skip invalid device nodes
by Eric Kohl
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b857ae808e317fc59f196…
commit b857ae808e317fc59f1966f924ee010550d244d3 Author: Eric Kohl <eric.kohl(a)reactos.org> AuthorDate: Sun Apr 5 18:29:32 2020 +0200 Commit: Eric Kohl <eric.kohl(a)reactos.org> CommitDate: Sun Apr 5 18:29:32 2020 +0200 [DEVMGR] CDeviceView::RecurseChildDevices: Skip invalid device nodes CORE-16780 --- dll/win32/devmgr/devmgmt/DeviceView.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/dll/win32/devmgr/devmgmt/DeviceView.cpp b/dll/win32/devmgr/devmgmt/DeviceView.cpp index 917140efd50..214c5f711a3 100644 --- a/dll/win32/devmgr/devmgmt/DeviceView.cpp +++ b/dll/win32/devmgr/devmgmt/DeviceView.cpp @@ -652,6 +652,7 @@ CDeviceView::RecurseChildDevices( if (DeviceNode == nullptr) { ATLASSERT(FALSE); + continue; } // Don't show hidden devices if not requested
4 years, 8 months
1
0
0
0
[reactos] 02/02: [MBEDTLS] Update to version 2.7.14. CORE-16787
by Thomas Faber
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1b00a1f50f10ad22e3625…
commit 1b00a1f50f10ad22e3625b479f3448ec99b71414 Author: Thomas Faber <thomas.faber(a)reactos.org> AuthorDate: Sat Apr 4 21:30:22 2020 +0200 Commit: Thomas Faber <thomas.faber(a)reactos.org> CommitDate: Sun Apr 5 14:45:03 2020 +0200 [MBEDTLS] Update to version 2.7.14. CORE-16787 --- dll/3rdparty/mbedtls/bignum.c | 5 +- dll/3rdparty/mbedtls/certs.c | 4 + dll/3rdparty/mbedtls/cipher.c | 14 +--- dll/3rdparty/mbedtls/pkparse.c | 120 +++++++++++++++++++++-------- dll/3rdparty/mbedtls/rsa.c | 8 +- dll/3rdparty/mbedtls/x509write_csr.c | 4 +- media/doc/3rd Party Files.txt | 2 +- sdk/include/reactos/libs/mbedtls/version.h | 8 +- 8 files changed, 114 insertions(+), 51 deletions(-) diff --git a/dll/3rdparty/mbedtls/bignum.c b/dll/3rdparty/mbedtls/bignum.c index 596e1a0164e..badc275c1de 100644 --- a/dll/3rdparty/mbedtls/bignum.c +++ b/dll/3rdparty/mbedtls/bignum.c @@ -153,9 +153,10 @@ int mbedtls_mpi_shrink( mbedtls_mpi *X, size_t nblimbs ) mbedtls_mpi_uint *p; size_t i; - /* Actually resize up in this case */ + /* Actually resize up if there are currently fewer than nblimbs limbs. */ if( X->n <= nblimbs ) return( mbedtls_mpi_grow( X, nblimbs ) ); + /* After this point, then X->n > nblimbs and in particular X->n > 0. */ for( i = X->n - 1; i > 0; i-- ) if( X->p[i] != 0 ) @@ -192,7 +193,7 @@ int mbedtls_mpi_copy( mbedtls_mpi *X, const mbedtls_mpi *Y ) if( X == Y ) return( 0 ); - if( Y->p == NULL ) + if( Y->n == 0 ) { mbedtls_mpi_free( X ); return( 0 ); diff --git a/dll/3rdparty/mbedtls/certs.c b/dll/3rdparty/mbedtls/certs.c index 78076f9f397..ae66bba6481 100644 --- a/dll/3rdparty/mbedtls/certs.c +++ b/dll/3rdparty/mbedtls/certs.c @@ -182,6 +182,10 @@ const size_t mbedtls_test_ca_crt_rsa_len = sizeof( mbedtls_test_ca_crt_rsa ); #if defined(MBEDTLS_SHA256_C) /* tests/data_files/server2-sha256.crt */ +/* Or more precisely, this is the contents of the version of this file + * that's in the mbedtls-2.16 branch, due to a backporting mistake. + * We don't want to change the contents now, as that would change the size + * which is part of the ABI, which should be stable in LTS branches. */ #define TEST_SRV_CRT_RSA_SHA256 \ "-----BEGIN CERTIFICATE-----\r\n" \ "MIIDNzCCAh+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADA7MQswCQYDVQQGEwJOTDER\r\n" \ diff --git a/dll/3rdparty/mbedtls/cipher.c b/dll/3rdparty/mbedtls/cipher.c index dfb9cad7f49..ae71060687a 100644 --- a/dll/3rdparty/mbedtls/cipher.c +++ b/dll/3rdparty/mbedtls/cipher.c @@ -284,6 +284,10 @@ int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *i *olen = 0; block_size = mbedtls_cipher_get_block_size( ctx ); + if ( 0 == block_size ) + { + return( MBEDTLS_ERR_CIPHER_INVALID_CONTEXT ); + } if( ctx->cipher_info->mode == MBEDTLS_MODE_ECB ) { @@ -310,11 +314,6 @@ int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *i } #endif - if ( 0 == block_size ) - { - return MBEDTLS_ERR_CIPHER_INVALID_CONTEXT; - } - if( input == output && ( ctx->unprocessed_len != 0 || ilen % block_size ) ) { @@ -373,11 +372,6 @@ int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *i */ if( 0 != ilen ) { - if( 0 == block_size ) - { - return MBEDTLS_ERR_CIPHER_INVALID_CONTEXT; - } - /* Encryption: only cache partial blocks * Decryption w/ padding: always keep at least one whole block * Decryption w/o padding: only cache partial blocks diff --git a/dll/3rdparty/mbedtls/pkparse.c b/dll/3rdparty/mbedtls/pkparse.c index 8afe989f772..fd8f5157a95 100644 --- a/dll/3rdparty/mbedtls/pkparse.c +++ b/dll/3rdparty/mbedtls/pkparse.c @@ -665,6 +665,32 @@ int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end, } #if defined(MBEDTLS_RSA_C) +/* + * Wrapper around mbedtls_asn1_get_mpi() that rejects zero. + * + * The value zero is: + * - never a valid value for an RSA parameter + * - interpreted as "omitted, please reconstruct" by mbedtls_rsa_complete(). + * + * Since values can't be omitted in PKCS#1, passing a zero value to + * rsa_complete() would be incorrect, so reject zero values early. + */ +static int asn1_get_nonzero_mpi( unsigned char **p, + const unsigned char *end, + mbedtls_mpi *X ) +{ + int ret; + + ret = mbedtls_asn1_get_mpi( p, end, X ); + if( ret != 0 ) + return( ret ); + + if( mbedtls_mpi_cmp_int( X, 0 ) == 0 ) + return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + + return( 0 ); +} + /* * Parse a PKCS#1 encoded private RSA key */ @@ -717,54 +743,84 @@ static int pk_parse_key_pkcs1_der( mbedtls_rsa_context *rsa, } /* Import N */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_INTEGER ) ) != 0 || - ( ret = mbedtls_rsa_import_raw( rsa, p, len, NULL, 0, NULL, 0, - NULL, 0, NULL, 0 ) ) != 0 ) + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = mbedtls_rsa_import( rsa, &T, NULL, NULL, + NULL, NULL ) ) != 0 ) goto cleanup; - p += len; /* Import E */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_INTEGER ) ) != 0 || - ( ret = mbedtls_rsa_import_raw( rsa, NULL, 0, NULL, 0, NULL, 0, - NULL, 0, p, len ) ) != 0 ) + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = mbedtls_rsa_import( rsa, NULL, NULL, NULL, + NULL, &T ) ) != 0 ) goto cleanup; - p += len; /* Import D */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_INTEGER ) ) != 0 || - ( ret = mbedtls_rsa_import_raw( rsa, NULL, 0, NULL, 0, NULL, 0, - p, len, NULL, 0 ) ) != 0 ) + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = mbedtls_rsa_import( rsa, NULL, NULL, NULL, + &T, NULL ) ) != 0 ) goto cleanup; - p += len; /* Import P */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_INTEGER ) ) != 0 || - ( ret = mbedtls_rsa_import_raw( rsa, NULL, 0, p, len, NULL, 0, - NULL, 0, NULL, 0 ) ) != 0 ) + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = mbedtls_rsa_import( rsa, NULL, &T, NULL, + NULL, NULL ) ) != 0 ) goto cleanup; - p += len; /* Import Q */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_INTEGER ) ) != 0 || - ( ret = mbedtls_rsa_import_raw( rsa, NULL, 0, NULL, 0, p, len, - NULL, 0, NULL, 0 ) ) != 0 ) + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = mbedtls_rsa_import( rsa, NULL, NULL, &T, + NULL, NULL ) ) != 0 ) goto cleanup; - p += len; - /* Complete the RSA private key */ - if( ( ret = mbedtls_rsa_complete( rsa ) ) != 0 ) - goto cleanup; +#if !defined(MBEDTLS_RSA_NO_CRT) && !defined(MBEDTLS_RSA_ALT) + /* + * The RSA CRT parameters DP, DQ and QP are nominally redundant, in + * that they can be easily recomputed from D, P and Q. However by + * parsing them from the PKCS1 structure it is possible to avoid + * recalculating them which both reduces the overhead of loading + * RSA private keys into memory and also avoids side channels which + * can arise when computing those values, since all of D, P, and Q + * are secret. See
https://eprint.iacr.org/2020/055
for a + * description of one such attack. + */ + + /* Import DP */ + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = mbedtls_mpi_copy( &rsa->DP, &T ) ) != 0 ) + goto cleanup; + + /* Import DQ */ + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = mbedtls_mpi_copy( &rsa->DQ, &T ) ) != 0 ) + goto cleanup; + + /* Import QP */ + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = mbedtls_mpi_copy( &rsa->QP, &T ) ) != 0 ) + goto cleanup; + +#else + /* Verify existance of the CRT params */ + if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || + ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 ) + goto cleanup; +#endif - /* Check optional parameters */ - if( ( ret = mbedtls_asn1_get_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_asn1_get_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_asn1_get_mpi( &p, end, &T ) ) != 0 ) + /* rsa_complete() doesn't complete anything with the default + * implementation but is still called: + * - for the benefit of alternative implementation that may want to + * pre-compute stuff beyond what's provided (eg Montgomery factors) + * - as is also sanity-checks the key + * + * Furthermore, we also check the public part for consistency with + * mbedtls_pk_parse_pubkey(), as it includes size minima for example. + */ + if( ( ret = mbedtls_rsa_complete( rsa ) ) != 0 || + ( ret = mbedtls_rsa_check_pubkey( rsa ) ) != 0 ) + { goto cleanup; + } if( p != end ) { diff --git a/dll/3rdparty/mbedtls/rsa.c b/dll/3rdparty/mbedtls/rsa.c index e9604e05d63..a014880bdd2 100644 --- a/dll/3rdparty/mbedtls/rsa.c +++ b/dll/3rdparty/mbedtls/rsa.c @@ -253,6 +253,12 @@ int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ) const int have_D = ( mbedtls_mpi_cmp_int( &ctx->D, 0 ) != 0 ); const int have_E = ( mbedtls_mpi_cmp_int( &ctx->E, 0 ) != 0 ); +#if !defined(MBEDTLS_RSA_NO_CRT) + const int have_DP = ( mbedtls_mpi_cmp_int( &ctx->DP, 0 ) != 0 ); + const int have_DQ = ( mbedtls_mpi_cmp_int( &ctx->DQ, 0 ) != 0 ); + const int have_QP = ( mbedtls_mpi_cmp_int( &ctx->QP, 0 ) != 0 ); +#endif + /* * Check whether provided parameters are enough * to deduce all others. The following incomplete @@ -318,7 +324,7 @@ int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ) */ #if !defined(MBEDTLS_RSA_NO_CRT) - if( is_priv ) + if( is_priv && ! ( have_DP && have_DQ && have_QP ) ) { ret = mbedtls_rsa_deduce_crt( &ctx->P, &ctx->Q, &ctx->D, &ctx->DP, &ctx->DQ, &ctx->QP ); diff --git a/dll/3rdparty/mbedtls/x509write_csr.c b/dll/3rdparty/mbedtls/x509write_csr.c index 3fd182b6a06..5d1114c5073 100644 --- a/dll/3rdparty/mbedtls/x509write_csr.c +++ b/dll/3rdparty/mbedtls/x509write_csr.c @@ -232,7 +232,9 @@ int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, s /* * Prepare signature */ - mbedtls_md( mbedtls_md_info_from_type( ctx->md_alg ), c, len, hash ); + ret = mbedtls_md( mbedtls_md_info_from_type( ctx->md_alg ), c, len, hash ); + if( ret != 0 ) + return( ret ); if( ( ret = mbedtls_pk_sign( ctx->key, ctx->md_alg, hash, 0, sig, &sig_len, f_rng, p_rng ) ) != 0 ) diff --git a/media/doc/3rd Party Files.txt b/media/doc/3rd Party Files.txt index c39445c5321..08e0455139c 100644 --- a/media/doc/3rd Party Files.txt +++ b/media/doc/3rd Party Files.txt @@ -84,7 +84,7 @@ Used Version: 4.1.0 Website:
http://www.simplesystems.org/libtiff/
Title: mbed TLS -Used Version: 2.7.13 +Used Version: 2.7.14 Website:
https://tls.mbed.org/
Title: libpng diff --git a/sdk/include/reactos/libs/mbedtls/version.h b/sdk/include/reactos/libs/mbedtls/version.h index 9f5fc45335b..6c93385b030 100644 --- a/sdk/include/reactos/libs/mbedtls/version.h +++ b/sdk/include/reactos/libs/mbedtls/version.h @@ -42,16 +42,16 @@ */ #define MBEDTLS_VERSION_MAJOR 2 #define MBEDTLS_VERSION_MINOR 7 -#define MBEDTLS_VERSION_PATCH 12 +#define MBEDTLS_VERSION_PATCH 14 /** * The single version number has the following structure: * MMNNPP00 * Major version | Minor version | Patch version */ -#define MBEDTLS_VERSION_NUMBER 0x02070C00 -#define MBEDTLS_VERSION_STRING "2.7.12" -#define MBEDTLS_VERSION_STRING_FULL "mbed TLS 2.7.12" +#define MBEDTLS_VERSION_NUMBER 0x02070E00 +#define MBEDTLS_VERSION_STRING "2.7.14" +#define MBEDTLS_VERSION_STRING_FULL "mbed TLS 2.7.14" #if defined(MBEDTLS_VERSION_C)
4 years, 8 months
1
0
0
0
[reactos] 01/02: [ACPICA] Update to version 20200326. CORE-16783
by Thomas Faber
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=040546d8ff3b9163335a7…
commit 040546d8ff3b9163335a7eeb1ab137f205cd949e Author: Thomas Faber <thomas.faber(a)reactos.org> AuthorDate: Wed Apr 1 22:27:34 2020 +0200 Commit: Thomas Faber <thomas.faber(a)reactos.org> CommitDate: Sun Apr 5 14:44:53 2020 +0200 [ACPICA] Update to version 20200326. CORE-16783 --- drivers/bus/acpi/acpica/dispatcher/dswexec.c | 32 +++++++++++++++++++++-- drivers/bus/acpi/acpica/dispatcher/dswload.c | 2 -- drivers/bus/acpi/acpica/dispatcher/dswload2.c | 37 +++++++++++++++++++++++++++ drivers/bus/acpi/acpica/hardware/hwsleep.c | 4 +-- drivers/bus/acpi/acpica/include/acdisasm.h | 1 + drivers/bus/acpi/acpica/include/acnamesp.h | 4 +++ drivers/bus/acpi/acpica/include/acpixf.h | 2 +- drivers/bus/acpi/acpica/include/actbinfo.h | 3 ++- drivers/bus/acpi/acpica/include/actbl2.h | 24 ++++++++++++++--- drivers/bus/acpi/acpica/include/actbl3.h | 6 ++--- drivers/bus/acpi/acpica/include/acuuid.h | 2 +- drivers/bus/acpi/acpica/namespace/nsnames.c | 8 +----- drivers/bus/acpi/acpica/utilities/utdecode.c | 2 +- drivers/bus/acpi/acpica/utilities/utdelete.c | 9 ++++--- drivers/bus/acpi/acpica/utilities/utprint.c | 8 +++++- media/doc/3rd Party Files.txt | 2 +- 16 files changed, 116 insertions(+), 30 deletions(-) diff --git a/drivers/bus/acpi/acpica/dispatcher/dswexec.c b/drivers/bus/acpi/acpica/dispatcher/dswexec.c index 32444a2128b..d9d79be2080 100644 --- a/drivers/bus/acpi/acpica/dispatcher/dswexec.c +++ b/drivers/bus/acpi/acpica/dispatcher/dswexec.c @@ -50,7 +50,9 @@ #include "acinterp.h" #include "acnamesp.h" #include "acdebug.h" - +#ifdef ACPI_EXEC_APP +#include "aecommon.h" +#endif #define _COMPONENT ACPI_DISPATCHER ACPI_MODULE_NAME ("dswexec") @@ -396,7 +398,10 @@ AcpiDsExecEndOp ( UINT32 OpClass; ACPI_PARSE_OBJECT *NextOp; ACPI_PARSE_OBJECT *FirstArg; - +#ifdef ACPI_EXEC_APP + char *Namepath; + ACPI_OPERAND_OBJECT *ObjDesc; +#endif ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState); @@ -609,6 +614,29 @@ AcpiDsExecEndOp ( } Status = AcpiDsEvalBufferFieldOperands (WalkState, Op); + if (ACPI_FAILURE (Status)) + { + break; + } + +#ifdef ACPI_EXEC_APP + /* + * AcpiExec support for namespace initialization file (initialize + * BufferFields in this code.) + */ + Namepath = AcpiNsGetExternalPathname (Op->Common.Node); + Status = AeLookupInitFileEntry (Namepath, &ObjDesc); + if (ACPI_SUCCESS (Status)) + { + Status = AcpiExWriteDataToField (ObjDesc, Op->Common.Node->Object, NULL); + if ACPI_FAILURE (Status) + { + ACPI_EXCEPTION ((AE_INFO, Status, "While writing to buffer field")); + } + } + ACPI_FREE (Namepath); + Status = AE_OK; +#endif break; diff --git a/drivers/bus/acpi/acpica/dispatcher/dswload.c b/drivers/bus/acpi/acpica/dispatcher/dswload.c index dbcf8f123f2..d3e11bc661e 100644 --- a/drivers/bus/acpi/acpica/dispatcher/dswload.c +++ b/drivers/bus/acpi/acpica/dispatcher/dswload.c @@ -48,7 +48,6 @@ #include "acdispat.h" #include "acinterp.h" #include "acnamesp.h" - #ifdef ACPI_ASL_COMPILER #include "acdisasm.h" #endif @@ -447,7 +446,6 @@ AcpiDsLoad1EndOp ( ACPI_PARSE_OBJECT *Op; ACPI_OBJECT_TYPE ObjectType; ACPI_STATUS Status = AE_OK; - #ifdef ACPI_ASL_COMPILER UINT8 ParamCount; #endif diff --git a/drivers/bus/acpi/acpica/dispatcher/dswload2.c b/drivers/bus/acpi/acpica/dispatcher/dswload2.c index df6e4c486c0..a916eec7fd9 100644 --- a/drivers/bus/acpi/acpica/dispatcher/dswload2.c +++ b/drivers/bus/acpi/acpica/dispatcher/dswload2.c @@ -49,6 +49,9 @@ #include "acinterp.h" #include "acnamesp.h" #include "acevents.h" +#ifdef ACPI_EXEC_APP +#include "aecommon.h" +#endif #define _COMPONENT ACPI_DISPATCHER ACPI_MODULE_NAME ("dswload2") @@ -423,6 +426,10 @@ AcpiDsLoad2EndOp ( ACPI_NAMESPACE_NODE *NewNode; UINT32 i; UINT8 RegionSpace; +#ifdef ACPI_EXEC_APP + ACPI_OPERAND_OBJECT *ObjDesc; + char *Namepath; +#endif ACPI_FUNCTION_TRACE (DsLoad2EndOp); @@ -519,6 +526,11 @@ AcpiDsLoad2EndOp ( * be evaluated later during the execution phase */ Status = AcpiDsCreateBufferField (Op, WalkState); + if ACPI_FAILURE (Status) + { + ACPI_EXCEPTION ((AE_INFO, Status, "CreateBufferField failure")); + goto Cleanup; + } break; case AML_TYPE_NAMED_FIELD: @@ -658,6 +670,31 @@ AcpiDsLoad2EndOp ( case AML_NAME_OP: Status = AcpiDsCreateNode (WalkState, Node, Op); + if (ACPI_FAILURE (Status)) + { + goto Cleanup; + } + +#ifdef ACPI_EXEC_APP + /* + * AcpiExec support for namespace initialization file (initialize + * Name opcodes in this code.) + */ + Namepath = AcpiNsGetExternalPathname (Node); + Status = AeLookupInitFileEntry (Namepath, &ObjDesc); + if (ACPI_SUCCESS (Status)) + { + /* Detach any existing object, attach new object */ + + if (Node->Object) + { + AcpiNsDetachObject (Node); + } + AcpiNsAttachObject (Node, ObjDesc, ObjDesc->Common.Type); + } + ACPI_FREE (Namepath); + Status = AE_OK; +#endif break; case AML_METHOD_OP: diff --git a/drivers/bus/acpi/acpica/hardware/hwsleep.c b/drivers/bus/acpi/acpica/hardware/hwsleep.c index 3d65e4394ff..6963d4e6826 100644 --- a/drivers/bus/acpi/acpica/hardware/hwsleep.c +++ b/drivers/bus/acpi/acpica/hardware/hwsleep.c @@ -358,11 +358,11 @@ AcpiHwLegacyWake ( /* Enable sleep button */ - (void) AcpiWriteBitRegister ( + (void) AcpiWriteBitRegister ( AcpiGbl_FixedEventInfo[ACPI_EVENT_SLEEP_BUTTON].EnableRegisterId, ACPI_ENABLE_EVENT); - (void) AcpiWriteBitRegister ( + (void) AcpiWriteBitRegister ( AcpiGbl_FixedEventInfo[ACPI_EVENT_SLEEP_BUTTON].StatusRegisterId, ACPI_CLEAR_STATUS); diff --git a/drivers/bus/acpi/acpica/include/acdisasm.h b/drivers/bus/acpi/acpica/include/acdisasm.h index f8b9b8cc3c4..c998022f469 100644 --- a/drivers/bus/acpi/acpica/include/acdisasm.h +++ b/drivers/bus/acpi/acpica/include/acdisasm.h @@ -349,6 +349,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs01[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; diff --git a/drivers/bus/acpi/acpica/include/acnamesp.h b/drivers/bus/acpi/acpica/include/acnamesp.h index f0c1e98dc79..2a81d278f01 100644 --- a/drivers/bus/acpi/acpica/include/acnamesp.h +++ b/drivers/bus/acpi/acpica/include/acnamesp.h @@ -379,6 +379,10 @@ AcpiNsBuildNormalizedPath ( UINT32 PathSize, BOOLEAN NoTrailing); +void +AcpiNsNormalizePathname ( + char *OriginalPath); + char * AcpiNsGetNormalizedPathname ( ACPI_NAMESPACE_NODE *Node, diff --git a/drivers/bus/acpi/acpica/include/acpixf.h b/drivers/bus/acpi/acpica/include/acpixf.h index 0669a5712cf..d3503841c27 100644 --- a/drivers/bus/acpi/acpica/include/acpixf.h +++ b/drivers/bus/acpi/acpica/include/acpixf.h @@ -46,7 +46,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20200214 +#define ACPI_CA_VERSION 0x20200326 #include "acconfig.h" #include "actypes.h" diff --git a/drivers/bus/acpi/acpica/include/actbinfo.h b/drivers/bus/acpi/acpica/include/actbinfo.h index 4f05863d97d..ee6c1f63034 100644 --- a/drivers/bus/acpi/acpica/include/actbinfo.h +++ b/drivers/bus/acpi/acpica/include/actbinfo.h @@ -156,7 +156,8 @@ #define ACPI_IORTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_NODE,f) #define ACPI_IORTM_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_ID_MAPPING,f) #define ACPI_IVRSH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_HEADER,f) -#define ACPI_IVRS0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_HARDWARE,f) +#define ACPI_IVRS0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_HARDWARE1,f) +#define ACPI_IVRS01_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_HARDWARE2,f) #define ACPI_IVRS1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_MEMORY,f) #define ACPI_IVRSD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DE_HEADER,f) #define ACPI_IVRS8A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8A,f) diff --git a/drivers/bus/acpi/acpica/include/actbl2.h b/drivers/bus/acpi/acpica/include/actbl2.h index b1d33ab7975..fff11574a89 100644 --- a/drivers/bus/acpi/acpica/include/actbl2.h +++ b/drivers/bus/acpi/acpica/include/actbl2.h @@ -79,6 +79,7 @@ #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ #define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */ #define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */ +#define ACPI_SIG_NHLT "NHLT" /* Non-HDAudio Link Table */ /* @@ -349,7 +350,8 @@ typedef struct acpi_ivrs_header enum AcpiIvrsType { - ACPI_IVRS_TYPE_HARDWARE = 0x10, + ACPI_IVRS_TYPE_HARDWARE1 = 0x10, + ACPI_IVRS_TYPE_HARDWARE2 = 0x11, ACPI_IVRS_TYPE_MEMORY1 = 0x20, ACPI_IVRS_TYPE_MEMORY2 = 0x21, ACPI_IVRS_TYPE_MEMORY3 = 0x22 @@ -377,16 +379,30 @@ enum AcpiIvrsType /* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */ -typedef struct acpi_ivrs_hardware +typedef struct acpi_ivrs_hardware_10 { ACPI_IVRS_HEADER Header; UINT16 CapabilityOffset; /* Offset for IOMMU control fields */ UINT64 BaseAddress; /* IOMMU control registers */ UINT16 PciSegmentGroup; UINT16 Info; /* MSI number and unit ID */ - UINT32 Reserved; + UINT32 FeatureReporting; + +} ACPI_IVRS_HARDWARE1; + +/* 0x11: I/O Virtualization Hardware Definition Block (IVHD) */ -} ACPI_IVRS_HARDWARE; +typedef struct acpi_ivrs_hardware_11 +{ + ACPI_IVRS_HEADER Header; + UINT16 CapabilityOffset; /* Offset for IOMMU control fields */ + UINT64 BaseAddress; /* IOMMU control registers */ + UINT16 PciSegmentGroup; + UINT16 Info; /* MSI number and unit ID */ + UINT32 Attributes; + UINT64 EfrRegisterImage; + UINT64 Reserved; +} ACPI_IVRS_HARDWARE2; /* Masks for Info field above */ diff --git a/drivers/bus/acpi/acpica/include/actbl3.h b/drivers/bus/acpi/acpica/include/actbl3.h index 2d877cd9a1a..7a9c90917f3 100644 --- a/drivers/bus/acpi/acpica/include/actbl3.h +++ b/drivers/bus/acpi/acpica/include/actbl3.h @@ -75,7 +75,7 @@ #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ #define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */ -#define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Migrations Table */ +#define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Mitigations Table */ #define ACPI_SIG_XENV "XENV" /* Xen Environment table */ #define ACPI_SIG_XXXX "XXXX" /* Intermediate AML header for ASL/ASL+ converter */ @@ -796,10 +796,10 @@ typedef struct acpi_table_wpbt /******************************************************************************* * - * WSMT - Windows SMM Security Migrations Table + * WSMT - Windows SMM Security Mitigations Table * Version 1 * - * Conforms to "Windows SMM Security Migrations Table", + * Conforms to "Windows SMM Security Mitigations Table", * Version 1.0, April 18, 2016 * ******************************************************************************/ diff --git a/drivers/bus/acpi/acpica/include/acuuid.h b/drivers/bus/acpi/acpica/include/acuuid.h index 104f6482ff3..39e3d2d9231 100644 --- a/drivers/bus/acpi/acpica/include/acuuid.h +++ b/drivers/bus/acpi/acpica/include/acuuid.h @@ -92,4 +92,4 @@ #define UUID_DEVICE_PROPERTIES "daffd814-6eba-4d8c-8a91-bc9bbf4aa301" -#endif /* __AUUID_H__ */ +#endif /* __ACUUID_H__ */ diff --git a/drivers/bus/acpi/acpica/namespace/nsnames.c b/drivers/bus/acpi/acpica/namespace/nsnames.c index 87f4bea030f..ef3108e328a 100644 --- a/drivers/bus/acpi/acpica/namespace/nsnames.c +++ b/drivers/bus/acpi/acpica/namespace/nsnames.c @@ -50,12 +50,6 @@ #define _COMPONENT ACPI_NAMESPACE ACPI_MODULE_NAME ("nsnames") -/* Local Prototypes */ - -static void -AcpiNsNormalizePathname ( - char *OriginalPath); - /******************************************************************************* * @@ -508,7 +502,7 @@ Cleanup: * ******************************************************************************/ -static void +void AcpiNsNormalizePathname ( char *OriginalPath) { diff --git a/drivers/bus/acpi/acpica/utilities/utdecode.c b/drivers/bus/acpi/acpica/utilities/utdecode.c index dbbd12bc245..5726f2f15e5 100644 --- a/drivers/bus/acpi/acpica/utilities/utdecode.c +++ b/drivers/bus/acpi/acpica/utilities/utdecode.c @@ -116,7 +116,7 @@ const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] = "IPMI", /* 0x07 */ "GeneralPurposeIo", /* 0x08 */ "GenericSerialBus", /* 0x09 */ - "PlatformCommChannel"/* 0x0A */ + "PCC" /* 0x0A */ }; diff --git a/drivers/bus/acpi/acpica/utilities/utdelete.c b/drivers/bus/acpi/acpica/utilities/utdelete.c index fc8cefb5a34..c339dba4557 100644 --- a/drivers/bus/acpi/acpica/utilities/utdelete.c +++ b/drivers/bus/acpi/acpica/utilities/utdelete.c @@ -518,13 +518,13 @@ AcpiUtUpdateRefCount ( * * FUNCTION: AcpiUtUpdateObjectReference * - * PARAMETERS: Object - Increment ref count for this object - * and all sub-objects + * PARAMETERS: Object - Increment or decrement the ref count for + * this object and all sub-objects * Action - Either REF_INCREMENT or REF_DECREMENT * * RETURN: Status * - * DESCRIPTION: Increment the object reference count + * DESCRIPTION: Increment or decrement the object reference count * * Object references are incremented when: * 1) An object is attached to a Node (namespace object) @@ -563,7 +563,7 @@ AcpiUtUpdateObjectReference ( } /* - * All sub-objects must have their reference count incremented + * All sub-objects must have their reference count updated * also. Different object types have different subobjects. */ switch (Object->Common.Type) @@ -632,6 +632,7 @@ AcpiUtUpdateObjectReference ( break; } } + NextObject = NULL; break; diff --git a/drivers/bus/acpi/acpica/utilities/utprint.c b/drivers/bus/acpi/acpica/utilities/utprint.c index 81316fc56c5..89c1d3bda57 100644 --- a/drivers/bus/acpi/acpica/utilities/utprint.c +++ b/drivers/bus/acpi/acpica/utilities/utprint.c @@ -452,7 +452,13 @@ vsnprintf ( Pos = String; - End = String + Size; + + + if (Size != ACPI_UINT32_MAX) { + End = String + Size; + } else { + End = ACPI_CAST_PTR(char, ACPI_UINT32_MAX); + } for (; *Format; ++Format) { diff --git a/media/doc/3rd Party Files.txt b/media/doc/3rd Party Files.txt index 9d7850fd3f6..c39445c5321 100644 --- a/media/doc/3rd Party Files.txt +++ b/media/doc/3rd Party Files.txt @@ -92,7 +92,7 @@ Used Version: 1.6.37 Website:
http://libpng.sourceforge.net/
Title: ACPICA -Used Version: 20200110 +Used Version: 20200326 Website:
https://acpica.org/
Title: Schily Tools, mkisofs
4 years, 8 months
1
0
0
0
[reactos] 01/01: [HOTPLUG] Add the context menu to the device tree view
by Eric Kohl
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bfdd6261f294238f10891…
commit bfdd6261f294238f108911892f2413f33759d8ce Author: Eric Kohl <eric.kohl(a)reactos.org> AuthorDate: Sun Apr 5 09:48:14 2020 +0200 Commit: Eric Kohl <eric.kohl(a)reactos.org> CommitDate: Sun Apr 5 09:50:34 2020 +0200 [HOTPLUG] Add the context menu to the device tree view --- dll/cpl/hotplug/hotplug.c | 74 ++++++++++++++++++++++++++++++++++++++++--- dll/cpl/hotplug/lang/de-DE.rc | 12 +++++++ dll/cpl/hotplug/lang/en-US.rc | 12 +++++++ dll/cpl/hotplug/resource.h | 12 +++++-- 4 files changed, 102 insertions(+), 8 deletions(-) diff --git a/dll/cpl/hotplug/hotplug.c b/dll/cpl/hotplug/hotplug.c index 7e0d32a80d4..acb872883b7 100644 --- a/dll/cpl/hotplug/hotplug.c +++ b/dll/cpl/hotplug/hotplug.c @@ -18,6 +18,7 @@ typedef struct _HOTPLUG_DATA { SP_CLASSIMAGELIST_DATA ImageListData; + HMENU hPopupMenu; DWORD dwFlags; } HOTPLUG_DATA, *PHOTPLUG_DATA; @@ -234,11 +235,9 @@ EnumHotpluggedDevices( int idev; DWORD dwCapabilities, dwSize; ULONG ulStatus, ulProblem; - HTREEITEM hTreeItem; CONFIGRET cr; - DPRINT1("EnumHotpluggedDevices()\n"); TreeView_DeleteAllItems(hwndDeviceTree); @@ -299,6 +298,50 @@ EnumHotpluggedDevices( } +static +VOID +UpdateButtons( + HWND hwndDlg) +{ + BOOL bEnabled; + + bEnabled = (TreeView_GetCount(GetDlgItem(hwndDlg, IDC_SAFE_REMOVE_DEVICE_TREE)) != 0); + + EnableWindow(GetDlgItem(hwndDlg, IDC_SAFE_REMOVE_PROPERTIES), bEnabled); + EnableWindow(GetDlgItem(hwndDlg, IDC_SAFE_REMOVE_STOP), bEnabled); +} + + +static +VOID +ShowContextMenu( + HWND hwndDlg, + HWND hwndTreeView, + PHOTPLUG_DATA pHotplugData) +{ + HTREEITEM hTreeItem; + RECT rc; + POINT pt; + + hTreeItem = TreeView_GetSelection(hwndTreeView); + if (hTreeItem == NULL) + return; + + TreeView_GetItemRect(hwndTreeView, hTreeItem, &rc, TRUE); + + pt.x = (rc.left + rc.right) / 2; + pt.y = (rc.top + rc.bottom) / 2; + ClientToScreen(hwndTreeView, &pt); + TrackPopupMenu(GetSubMenu(pHotplugData->hPopupMenu, 0), + TPM_LEFTALIGN | TPM_TOPALIGN, + pt.x, + pt.y, + 0, + hwndDlg, + NULL); +} + + INT_PTR CALLBACK SafeRemovalDlgProc( @@ -309,14 +352,12 @@ SafeRemovalDlgProc( { PHOTPLUG_DATA pHotplugData; - UNREFERENCED_PARAMETER(lParam); - pHotplugData = (PHOTPLUG_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); switch (uMsg) { case WM_INITDIALOG: - pHotplugData = HeapAlloc(GetProcessHeap(), 0, sizeof(HOTPLUG_DATA)); + pHotplugData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(HOTPLUG_DATA)); if (pHotplugData != NULL) { SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pHotplugData); @@ -324,6 +365,8 @@ SafeRemovalDlgProc( pHotplugData->ImageListData.cbSize = sizeof(pHotplugData->ImageListData); SetupDiGetClassImageList(&pHotplugData->ImageListData); + pHotplugData->hPopupMenu = LoadMenu(hApplet, MAKEINTRESOURCE(IDM_POPUP_DEVICE_TREE)); + pHotplugData->dwFlags = GetHotPlugFlags(); if (pHotplugData->dwFlags & HOTPLUG_DISPLAY_DEVICE_COMPONENTS) @@ -335,6 +378,7 @@ SafeRemovalDlgProc( EnumHotpluggedDevices(GetDlgItem(hwndDlg, IDC_SAFE_REMOVE_DEVICE_TREE), pHotplugData); + UpdateButtons(hwndDlg); } return TRUE; @@ -384,6 +428,23 @@ SafeRemovalDlgProc( { EnumHotpluggedDevices(GetDlgItem(hwndDlg, IDC_SAFE_REMOVE_DEVICE_TREE), pHotplugData); + UpdateButtons(hwndDlg); + } + } + break; + + case WM_NOTIFY: + if (((LPNMHDR)lParam)->idFrom == IDC_SAFE_REMOVE_DEVICE_TREE) + { + if (((LPNMHDR)lParam)->code == NM_RCLICK) + { + if (pHotplugData != NULL) + { + ShowContextMenu(hwndDlg, + ((LPNMHDR)lParam)->hwndFrom, + pHotplugData); + return TRUE; + } } } break; @@ -396,6 +457,9 @@ SafeRemovalDlgProc( case WM_DESTROY: if (pHotplugData != NULL) { + if (pHotplugData->hPopupMenu != NULL) + DestroyMenu(pHotplugData->hPopupMenu); + SetupDiDestroyClassImageList(&pHotplugData->ImageListData); HeapFree(GetProcessHeap(), 0, pHotplugData); diff --git a/dll/cpl/hotplug/lang/de-DE.rc b/dll/cpl/hotplug/lang/de-DE.rc index 46e04653c88..f1f2366abe9 100644 --- a/dll/cpl/hotplug/lang/de-DE.rc +++ b/dll/cpl/hotplug/lang/de-DE.rc @@ -16,3 +16,15 @@ BEGIN AUTOCHECKBOX "&Gerätekomponenten anzeigen", IDC_SAFE_REMOVE_DISPLAY_COMPONENTS, 7, 208, 112, 10, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Schließen", IDCLOSE, 216, 224, 55, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP END + + +/* Menus */ + +IDM_POPUP_DEVICE_TREE MENU +BEGIN + POPUP "" + BEGIN + MENUITEM "Beenden", IDM_STOP + MENUITEM "Eigenschaften", IDM_PROPERTIES + END +END diff --git a/dll/cpl/hotplug/lang/en-US.rc b/dll/cpl/hotplug/lang/en-US.rc index 1ac4e2e06e2..77aa94c1cb2 100644 --- a/dll/cpl/hotplug/lang/en-US.rc +++ b/dll/cpl/hotplug/lang/en-US.rc @@ -16,3 +16,15 @@ BEGIN AUTOCHECKBOX "&Display device components", IDC_SAFE_REMOVE_DISPLAY_COMPONENTS, 7, 208, 112, 10, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Close", IDCLOSE, 216, 224, 55, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP END + + +/* Menus */ + +IDM_POPUP_DEVICE_TREE MENU +BEGIN + POPUP "" + BEGIN + MENUITEM "Stop", IDM_STOP + MENUITEM "Properties", IDM_PROPERTIES + END +END diff --git a/dll/cpl/hotplug/resource.h b/dll/cpl/hotplug/resource.h index 5ad44b59c03..af8d359670d 100644 --- a/dll/cpl/hotplug/resource.h +++ b/dll/cpl/hotplug/resource.h @@ -1,9 +1,9 @@ #pragma once -/* Icon ids */ +/* Icon IDs */ #define IDI_HOTPLUG 100 -/* Dialog ids */ +/* Dialog IDs */ #define IDC_STATIC -1 #define IDD_SAFE_REMOVE_HARDWARE_DIALOG 300 @@ -16,6 +16,12 @@ #define IDD_CONFIRM_STOP_HARDWARE_DIALOG 310 -/* Resource strings ids */ +/* Menu IDs */ +#define IDM_POPUP_DEVICE_TREE 500 +#define IDM_STOP 501 +#define IDM_PROPERTIES 502 + +/* Resource strings IDs */ #define IDS_CPLNAME 1000 #define IDS_CPLDESCRIPTION 1001 +
4 years, 8 months
1
0
0
0
[reactos] 01/01: [ROSAUTOTEST] Submit results to https://reactos.org:8443 instead of https://tlsv1.reactos.org
by Colin Finck
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7d1f270918338d0844db6…
commit 7d1f270918338d0844db6f99ce0eba970931eda8 Author: Colin Finck <colin(a)reactos.org> AuthorDate: Sat Apr 4 20:34:41 2020 +0200 Commit: Colin Finck <colin(a)reactos.org> CommitDate: Sat Apr 4 20:35:58 2020 +0200 [ROSAUTOTEST] Submit results to
https://reactos.org:8443
instead of
https://tlsv1.reactos.org
It is much easier server-side to maintain a different TLS configuration on another port rather than another subdomain. --- modules/rostests/rosautotest/CWebService.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/rostests/rosautotest/CWebService.cpp b/modules/rostests/rosautotest/CWebService.cpp index 2830e978435..85ead6d9135 100644 --- a/modules/rostests/rosautotest/CWebService.cpp +++ b/modules/rostests/rosautotest/CWebService.cpp @@ -7,7 +7,8 @@ #include "precomp.h" -static const WCHAR szHostname[] = L"
tlsv1.reactos.org
"; +static const WCHAR szHostname[] = L"
reactos.org
"; +static const INTERNET_PORT ServerPort = 8443; static const WCHAR szServerFile[] = L"testman/webservice/"; /** @@ -26,7 +27,7 @@ CWebService::CWebService() if(!m_hInet) FATAL("InternetOpenW failed\n"); - m_hHTTP = InternetConnectW(m_hInet, szHostname, INTERNET_DEFAULT_HTTPS_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0); + m_hHTTP = InternetConnectW(m_hInet, szHostname, ServerPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0); if(!m_hHTTP) FATAL("InternetConnectW failed\n");
4 years, 8 months
1
0
0
0
[reactos] 07/07: [RAPPS] Ensure the download dialog is always destroyed Ideally, this entire download thing should be rewritten, but that is something for another day.
by Mark Jansen
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=946ee611a3a4ed0020f2e…
commit 946ee611a3a4ed0020f2eb8960314e5897379c56 Author: Mark Jansen <mark.jansen(a)reactos.org> AuthorDate: Sat Apr 4 18:37:18 2020 +0200 Commit: Mark Jansen <mark.jansen(a)reactos.org> CommitDate: Sat Apr 4 19:55:31 2020 +0200 [RAPPS] Ensure the download dialog is always destroyed Ideally, this entire download thing should be rewritten, but that is something for another day. --- base/applications/rapps/loaddlg.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/base/applications/rapps/loaddlg.cpp b/base/applications/rapps/loaddlg.cpp index c5b7b06c880..213e4afb3ab 100644 --- a/base/applications/rapps/loaddlg.cpp +++ b/base/applications/rapps/loaddlg.cpp @@ -349,6 +349,7 @@ class CDownloadManager static CDowloadingAppsListView DownloadsListView; static CDownloaderProgress ProgressBar; static BOOL bCancelled; + static BOOL bModal; static VOID UpdateProgress(HWND hDlg, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText); public: static VOID Add(DownloadInfo info); @@ -363,7 +364,8 @@ public: ATL::CSimpleArray<DownloadInfo> CDownloadManager::AppsToInstallList; CDowloadingAppsListView CDownloadManager::DownloadsListView; CDownloaderProgress CDownloadManager::ProgressBar; -BOOL CDownloadManager::bCancelled; +BOOL CDownloadManager::bCancelled = FALSE; +BOOL CDownloadManager::bModal = FALSE; VOID CDownloadManager::Add(DownloadInfo info) { @@ -452,8 +454,14 @@ INT_PTR CALLBACK CDownloadManager::DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM w return FALSE; case WM_CLOSE: - EndDialog(Dlg, 0); - //DestroyWindow(Dlg); + if (CDownloadManager::bModal) + { + ::EndDialog(Dlg, 0); + } + else + { + ::DestroyWindow(Dlg); + } return TRUE; default: @@ -858,6 +866,7 @@ end: //TODO: Reuse the dialog VOID CDownloadManager::LaunchDownloadDialog(BOOL bIsModal) { + CDownloadManager::bModal = bIsModal; if (bIsModal) { DialogBoxW(hInst,
4 years, 8 months
1
0
0
0
[reactos] 06/07: [ATL] Add some hacks for gcc, since parsing templates is not something it can do
by Mark Jansen
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1437433039a525004ad02…
commit 1437433039a525004ad0267a7361e9d788e745cc Author: Mark Jansen <mark.jansen(a)reactos.org> AuthorDate: Tue Mar 17 22:35:53 2020 +0100 Commit: Mark Jansen <mark.jansen(a)reactos.org> CommitDate: Sat Apr 4 19:55:31 2020 +0200 [ATL] Add some hacks for gcc, since parsing templates is not something it can do --- sdk/lib/atl/atlcom.h | 2 +- sdk/lib/atl/atlwin.h | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/lib/atl/atlcom.h b/sdk/lib/atl/atlcom.h index 57121ff3973..9c45c2eab2a 100644 --- a/sdk/lib/atl/atlcom.h +++ b/sdk/lib/atl/atlcom.h @@ -456,7 +456,7 @@ class CComCreator2 public: static HRESULT WINAPI CreateInstance(void *pv, REFIID riid, LPVOID *ppv) { - ATLASSERT(ppv != NULL && riid != NULL); + ATLASSERT(ppv != NULL && &riid != NULL); if (pv == NULL) return T1::CreateInstance(NULL, riid, ppv); diff --git a/sdk/lib/atl/atlwin.h b/sdk/lib/atl/atlwin.h index c35c936acab..70f0413b41a 100644 --- a/sdk/lib/atl/atlwin.h +++ b/sdk/lib/atl/atlwin.h @@ -1465,6 +1465,7 @@ public: // + Hacks for gcc using CWindowImplRoot<TBase>::WINSTATE_DESTROYED; using CWindowImplRoot<TBase>::m_thunk; + using CWindowImplRoot<TBase>::m_hWnd; // - Hacks for gcc WNDPROC m_pfnSuperWindowProc; @@ -1623,6 +1624,11 @@ template <class T, class TBase = CWindow, class TWinTraits = CControlWinTraits> class CWindowImpl : public CWindowImplBaseT<TBase, TWinTraits> { public: + // + Hacks for gcc + using CWindowImplRoot<TBase>::m_hWnd; + // - Hacks for gcc + + static LPCTSTR GetWndCaption() { return NULL; @@ -1655,6 +1661,10 @@ template <class TBase = CWindow, class TWinTraits = CControlWinTraits> class CContainedWindowT : public TBase { public: + // + Hacks for gcc + using TBase::m_hWnd; + // - Hacks for gcc + CWndProcThunk m_thunk; LPCTSTR m_lpszClassName; WNDPROC m_pfnSuperWindowProc;
4 years, 8 months
1
0
0
0
[reactos] 05/07: [RAPPS] Use the provided SizeBytes for the progress, when the host does not give a file size
by Mark Jansen
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=4439b538007bdf5dd2f4b…
commit 4439b538007bdf5dd2f4b3e52e079363f73b946d Author: Mark Jansen <mark.jansen(a)reactos.org> AuthorDate: Tue Mar 17 20:54:45 2020 +0100 Commit: Mark Jansen <mark.jansen(a)reactos.org> CommitDate: Sat Apr 4 19:55:31 2020 +0200 [RAPPS] Use the provided SizeBytes for the progress, when the host does not give a file size --- base/applications/rapps/available.cpp | 5 +++-- base/applications/rapps/include/available.h | 1 + base/applications/rapps/loaddlg.cpp | 21 ++++++++++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/base/applications/rapps/available.cpp b/base/applications/rapps/available.cpp index 16e4fc00775..e029d9c13fd 100644 --- a/base/applications/rapps/available.cpp +++ b/base/applications/rapps/available.cpp @@ -19,7 +19,7 @@ // CAvailableApplicationInfo CAvailableApplicationInfo::CAvailableApplicationInfo(const ATL::CStringW& sFileNameParam) - : m_IsSelected(FALSE), m_LicenseType(LICENSE_NONE), m_sFileName(sFileNameParam), + : m_IsSelected(FALSE), m_LicenseType(LICENSE_NONE), m_SizeBytes(0), m_sFileName(sFileNameParam), m_IsInstalled(FALSE), m_HasLanguageInfo(FALSE), m_HasInstalledVersion(FALSE) { RetrieveGeneralInfo(); @@ -153,7 +153,8 @@ VOID CAvailableApplicationInfo::RetrieveSize() GetString(L"Size", m_szSize); return; } - + + m_SizeBytes = iSizeBytes; StrFormatByteSizeW(iSizeBytes, m_szSize.GetBuffer(MAX_PATH), MAX_PATH); m_szSize.ReleaseBuffer(); } diff --git a/base/applications/rapps/include/available.h b/base/applications/rapps/include/available.h index f5beb9e44cf..5e3a464fc03 100644 --- a/base/applications/rapps/include/available.h +++ b/base/applications/rapps/include/available.h @@ -37,6 +37,7 @@ struct CAvailableApplicationInfo ATL::CStringW m_szUrlDownload; ATL::CStringW m_szCDPath; ATL::CSimpleArray<LCID> m_LanguageLCIDs; + ULONG m_SizeBytes; // Caching mechanism related entries ATL::CStringW m_sFileName; diff --git a/base/applications/rapps/loaddlg.cpp b/base/applications/rapps/loaddlg.cpp index 5b31ed06f0e..c5b7b06c880 100644 --- a/base/applications/rapps/loaddlg.cpp +++ b/base/applications/rapps/loaddlg.cpp @@ -73,13 +73,17 @@ struct DownloadInfo { DownloadInfo() {} DownloadInfo(const CAvailableApplicationInfo& AppInfo) - :szUrl(AppInfo.m_szUrlDownload), szName(AppInfo.m_szName), szSHA1(AppInfo.m_szSHA1) + : szUrl(AppInfo.m_szUrlDownload) + , szName(AppInfo.m_szName) + , szSHA1(AppInfo.m_szSHA1) + , SizeInBytes(AppInfo.m_SizeBytes) { } ATL::CStringW szUrl; ATL::CStringW szName; ATL::CStringW szSHA1; + ULONG SizeInBytes; }; struct DownloadParam @@ -669,8 +673,7 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param) // query content length HttpQueryInfoW(hFile, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, &dwContentLen, &dwStatusLen, NULL); } - - if (urlComponents.nScheme == INTERNET_SCHEME_FTP) + else if (urlComponents.nScheme == INTERNET_SCHEME_FTP) { // force passive mode on FTP hFile = InternetOpenUrlW(hOpen, InfoArray[iAppId].szUrl.GetString(), NULL, 0, @@ -687,8 +690,16 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param) if (!dwContentLen) { - // content-length is not known, enable marquee mode - ProgressBar.SetMarquee(TRUE); + // Someone was nice enough to add this, let's use it + if (InfoArray[iAppId].SizeInBytes) + { + dwContentLen = InfoArray[iAppId].SizeInBytes; + } + else + { + // content-length is not known, enable marquee mode + ProgressBar.SetMarquee(TRUE); + } } free(urlComponents.lpszScheme);
4 years, 8 months
1
0
0
0
[reactos] 04/07: [RAPPS] Enable ATL assertions
by Mark Jansen
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bcd301d136f7c05d5052a…
commit bcd301d136f7c05d5052a9ded51e2123f3c32078 Author: Mark Jansen <mark.jansen(a)reactos.org> AuthorDate: Tue Mar 17 20:54:07 2020 +0100 Commit: Mark Jansen <mark.jansen(a)reactos.org> CommitDate: Sat Apr 4 19:55:31 2020 +0200 [RAPPS] Enable ATL assertions --- base/applications/rapps/include/defines.h | 1 + 1 file changed, 1 insertion(+) diff --git a/base/applications/rapps/include/defines.h b/base/applications/rapps/include/defines.h index cee17f6fad5..cf045923e39 100644 --- a/base/applications/rapps/include/defines.h +++ b/base/applications/rapps/include/defines.h @@ -4,6 +4,7 @@ #define _INC_WINDOWS #define COM_NO_WINDOWS_H #define COBJMACROS +#define _DEBUG #include <tchar.h> #include <stdarg.h>
4 years, 8 months
1
0
0
0
← Newer
1
...
34
35
36
37
38
39
40
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
Results per page:
10
25
50
100
200