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
June 2012
----- 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
11 participants
120 discussions
Start a n
N
ew thread
[tkreuzer] 56753: [PSDK] Add ULongMult
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Jun 19 20:17:54 2012 New Revision: 56753 URL:
http://svn.reactos.org/svn/reactos?rev=56753&view=rev
Log: [PSDK] Add ULongMult Modified: trunk/reactos/include/psdk/intsafe.h Modified: trunk/reactos/include/psdk/intsafe.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/intsafe.h?rev…
============================================================================== --- trunk/reactos/include/psdk/intsafe.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/intsafe.h [iso-8859-1] Tue Jun 19 20:17:54 2012 @@ -681,6 +681,7 @@ return INTSAFE_NAME(_Convert)(Result, pOutput); \ } +DEFINE_SAFE_MULT_U32(ULongMult, ULONG, ULongLongToULong) #ifndef _WIN64 DEFINE_SAFE_MULT_U32(SizeTMult, size_t, ULongLongToSizeT) DEFINE_SAFE_MULT_U32(SIZETMult, SIZE_T, ULongLongToSIZET)
12 years, 6 months
1
0
0
0
[tkreuzer] 56752: [PSDK] intsafe.h: Fix a typo
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Jun 19 20:13:00 2012 New Revision: 56752 URL:
http://svn.reactos.org/svn/reactos?rev=56752&view=rev
Log: [PSDK] intsafe.h: Fix a typo Modified: trunk/reactos/include/psdk/intsafe.h Modified: trunk/reactos/include/psdk/intsafe.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/intsafe.h?rev…
============================================================================== --- trunk/reactos/include/psdk/intsafe.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/intsafe.h [iso-8859-1] Tue Jun 19 20:13:00 2012 @@ -524,7 +524,7 @@ DEFINE_SAFE_ADD(UInt8Add, UINT8) DEFINE_SAFE_ADD(UShortAdd, USHORT) DEFINE_SAFE_ADD(UIntAdd, UINT) -DEFINE_SAFE_ADD(UlongAdd, ULONG) +DEFINE_SAFE_ADD(ULongAdd, ULONG) DEFINE_SAFE_ADD(UIntPtrAdd, UINT_PTR) DEFINE_SAFE_ADD(ULongPtrAdd, ULONG_PTR) DEFINE_SAFE_ADD(DWordPtrAdd, DWORD_PTR)
12 years, 6 months
1
0
0
0
[tfaber] 56751: [WS2_32] - Remove ridiculous hack.
by tfaber@svn.reactos.org
Author: tfaber Date: Tue Jun 19 16:54:12 2012 New Revision: 56751 URL:
http://svn.reactos.org/svn/reactos?rev=56751&view=rev
Log: [WS2_32] - Remove ridiculous hack. Modified: trunk/reactos/dll/win32/ws2_32/misc/dllmain.c Modified: trunk/reactos/dll/win32/ws2_32/misc/dllmain.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32/misc/dllm…
============================================================================== --- trunk/reactos/dll/win32/ws2_32/misc/dllmain.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/ws2_32/misc/dllmain.c [iso-8859-1] Tue Jun 19 16:54:12 2012 @@ -18,9 +18,6 @@ //DWORD DebugTraceLevel = DEBUG_ULTRA; DWORD DebugTraceLevel = 0; #endif /* DBG */ - -/* To make the linker happy */ -VOID WINAPI KeBugCheck (ULONG BugCheckCode) {} HINSTANCE g_hInstDll; HANDLE GlobalHeap;
12 years, 6 months
1
0
0
0
[tkreuzer] 56750: [PSDK] intsafe.h: - Fix type redefinitions when ntdef.h is included - Implement (Rtl)LongLongSub and (Rtl)UlongLongMult - Add some more definitions - misc fixes
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Jun 19 13:05:23 2012 New Revision: 56750 URL:
http://svn.reactos.org/svn/reactos?rev=56750&view=rev
Log: [PSDK] intsafe.h: - Fix type redefinitions when ntdef.h is included - Implement (Rtl)LongLongSub and (Rtl)UlongLongMult - Add some more definitions - misc fixes Modified: trunk/reactos/include/psdk/intsafe.h Modified: trunk/reactos/include/psdk/intsafe.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/intsafe.h?rev…
============================================================================== --- trunk/reactos/include/psdk/intsafe.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/intsafe.h [iso-8859-1] Tue Jun 19 13:05:23 2012 @@ -36,22 +36,23 @@ /* Handle ntintsafe here too */ #ifdef _NTINTSAFE_H_INCLUDED_ -#ifndef NT_SUCCESS /* Guard agains redefinition from ntstatus.h */ +#ifndef _NTDEF_ /* Guard agains redefinition from ntstatus.h */ typedef _Return_type_success_(return >= 0) long NTSTATUS; +#endif #define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) -#define STATUS_SUCCESS ((NTSTATUS)0x00000000L) -#endif +#define STATUS_SUCCESS ((NTSTATUS)0x00000000) +#define STATUS_INTEGER_OVERFLOW ((NTSTATUS)0xC0000095) #define INTSAFE_RESULT NTSTATUS #define INTSAFE_SUCCESS STATUS_SUCCESS #define INTSAFE_E_ARITHMETIC_OVERFLOW STATUS_INTEGER_OVERFLOW #define INTSAFE_NAME(name) Rtl##name #else // _NTINTSAFE_H_INCLUDED_ -#ifndef SUCCEEDED /* Guard agains redefinition from winerror.h */ +#ifndef _HRESULT_DEFINED typedef _Return_type_success_(return >= 0) long HRESULT; +#endif #define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) #define FAILED(hr) (((HRESULT)(hr)) < 0) #define S_OK ((HRESULT)0L) -#endif #define INTSAFE_RESULT HRESULT #define INTSAFE_SUCCESS S_OK #define INTSAFE_E_ARITHMETIC_OVERFLOW ((HRESULT)0x80070216L) @@ -77,17 +78,18 @@ /* Typedefs */ #ifndef _WINNT_ +#ifndef _NTDEF_ typedef char CHAR; +typedef unsigned char UCHAR, UINT8; typedef signed char INT8; -typedef unsigned char UCHAR, UINT8, BYTE; typedef short SHORT; typedef signed short INT16; -typedef unsigned short USHORT, UINT16, WORD; +typedef unsigned short USHORT, UINT16; typedef int INT; +typedef unsigned int UINT32; typedef signed int INT32; -typedef unsigned int UINT, UINT32; typedef long LONG; -typedef unsigned long ULONG, DWORD; +typedef unsigned long ULONG; typedef long long LONGLONG, LONG64; typedef signed long long INT64; typedef unsigned long long ULONGLONG, DWORDLONG, ULONG64, DWORD64, UINT64; @@ -100,6 +102,11 @@ typedef _W64 long LONG_PTR, SSIZE_T; typedef _W64 unsigned long ULONG_PTR, DWORD_PTR, SIZE_T; #endif // _WIN64 +#endif +typedef unsigned char BYTE; +typedef unsigned short WORD; +typedef unsigned int UINT; +typedef unsigned long DWORD; #endif // _WINNT_ /* Just to be sure! */ @@ -110,16 +117,27 @@ C_ASSERT(sizeof(ULONG) == 4); C_ASSERT(sizeof(UINT_PTR) == sizeof(ULONG_PTR)); +/* Undefine these to avoid conflicts with limits.h */ +#undef CHAR_MIN +#undef CHAR_MAX +#undef INT_MIN +#undef INT_MAX +#undef LONG_MIN +#undef LONG_MAX +#undef UCHAR_MAX +#undef UINT_MAX +#undef ULONG_MAX + /* Integer range margins (use (x-1) to prevent warnings) */ -#define INT8_MIN (-128) -#define SHORT_MIN (-32768) -#define INT16_MIN (-32768) +#define INT8_MIN (-127 - 1) +#define SHORT_MIN (-32767 - 1) +#define INT16_MIN (-32767 - 1) #define INT_MIN (-2147483647 - 1) #define INT32_MIN (-2147483647 - 1) #define LONG_MIN (-2147483647L - 1) -#define LONGLONG_MIN (-9223372036854775808LL) -#define LONG64_MIN (-9223372036854775808LL) -#define INT64_MIN (-9223372036854775808LL) +#define LONGLONG_MIN (-9223372036854775807LL - 1) +#define LONG64_MIN (-9223372036854775807LL - 1) +#define INT64_MIN (-9223372036854775807LL - 1) //#define INT128_MIN (-170141183460469231731687303715884105728) #ifdef _WIN64 #define INT_PTR_MIN INT64_MIN @@ -242,6 +260,12 @@ #define CHAR_ERROR '\0' +/* 32 bit x 32 bit to 64 bit unsigned multiplication */ +#ifndef UInt32x32To64 +#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b)) +#endif + + #define DEFINE_SAFE_CONVERT_UTOX(_Name, _TypeFrom, _TypeTo) \ _Must_inspect_result_ \ __forceinline \ @@ -253,7 +277,7 @@ if (Input <= _TypeTo ## _MAX) \ { \ *pOutput = (_TypeTo)Input; \ - return S_OK; \ + return INTSAFE_SUCCESS; \ } \ else \ { \ @@ -289,6 +313,8 @@ DEFINE_SAFE_CONVERT_UTOX(UIntPtrToLong, UINT_PTR, LONG) DEFINE_SAFE_CONVERT_UTOX(UIntPtrToIntPtr, UINT_PTR, INT_PTR) DEFINE_SAFE_CONVERT_UTOX(UIntPtrToLongPtr, UINT_PTR, LONG_PTR) +DEFINE_SAFE_CONVERT_UTOX(ULongLongToUInt, ULONGLONG, UINT) +DEFINE_SAFE_CONVERT_UTOX(ULongLongToULong, ULONGLONG, ULONG) #define DEFINE_SAFE_CONVERT_ITOU(_Name, _TypeFrom, _TypeTo) \ @@ -302,7 +328,7 @@ if ((Input >= 0) && (Input <= _TypeTo ## _MAX)) \ { \ *pOutput = (_TypeTo)Input; \ - return S_OK; \ + return INTSAFE_SUCCESS; \ } \ else \ { \ @@ -375,7 +401,7 @@ if ((Input >= _TypeTo ## _MIN) && (Input <= _TypeTo ## _MAX)) \ { \ *pOutput = (_TypeTo)Input; \ - return S_OK; \ + return INTSAFE_SUCCESS; \ } \ else \ { \ @@ -400,76 +426,47 @@ DEFINE_SAFE_CONVERT_ITOI(LongPtrToInt, LONG_PTR, INT) DEFINE_SAFE_CONVERT_ITOI(LongPtrToLong, LONG_PTR, LONG) DEFINE_SAFE_CONVERT_ITOI(LongPtrToIntPtr, LONG_PTR, INT_PTR) +DEFINE_SAFE_CONVERT_ITOI(LongLongToLong, LONGLONG, LONG) +DEFINE_SAFE_CONVERT_ITOI(LongLongToIntPtr, LONGLONG, INT_PTR) +DEFINE_SAFE_CONVERT_ITOI(LongLongToLongPtr, LONGLONG, LONG_PTR) #ifndef _CHAR_UNSIGNED DEFINE_SAFE_CONVERT_ITOI(ShortToChar, SHORT, CHAR) DEFINE_SAFE_CONVERT_ITOI(LongPtrToChar, LONG_PTR, CHAR) #endif -#define DEFINE_SAFE_ADD(_Name, _Type) \ -_Must_inspect_result_ \ -__forceinline \ -INTSAFE_RESULT \ -INTSAFE_NAME(_Name)( \ - _In_ _Type Augend, \ - _In_ _Type Addend, \ - _Out_ _Deref_out_range_(==, Augend + Addend) _Type *pOutput) \ -{ \ - if ((Augend + Addend) >= Augend) \ - { \ - *pOutput = Augend + Addend; \ - return INTSAFE_SUCCESS; \ - } \ - else \ - { \ - *pOutput = _Type ## _ERROR; \ - return INTSAFE_E_ARITHMETIC_OVERFLOW; \ - } \ -} - -DEFINE_SAFE_ADD(UInt8Add, UINT8) -DEFINE_SAFE_ADD(UShortAdd, USHORT) -DEFINE_SAFE_ADD(UIntAdd, UINT) -DEFINE_SAFE_ADD(UlongAdd, ULONG) -DEFINE_SAFE_ADD(UIntPtrAdd, UINT_PTR) -DEFINE_SAFE_ADD(ULongPtrAdd, ULONG_PTR) -DEFINE_SAFE_ADD(DWordPtrAdd, DWORD_PTR) -DEFINE_SAFE_ADD(SizeTAdd, size_t) -DEFINE_SAFE_ADD(SIZETAdd, SIZE_T) -DEFINE_SAFE_ADD(ULongLongAdd, ULONGLONG) - - -#define DEFINE_SAFE_SUB(_Name, _Type) \ -_Must_inspect_result_ \ -__forceinline \ -INTSAFE_RESULT \ -INTSAFE_NAME(_Name)( \ - _In_ _Type Minuend, \ - _In_ _Type Subtrahend, \ - _Out_ _Deref_out_range_(==, Minuend - Subtrahend) _Type* pOutput) \ -{ \ - if (Minuend >= Subtrahend) \ - { \ - *pOutput = Minuend - Subtrahend; \ - return INTSAFE_SUCCESS; \ - } \ - else \ - { \ - *pOutput = _Type ## _ERROR; \ - return INTSAFE_E_ARITHMETIC_OVERFLOW; \ - } \ -} - -DEFINE_SAFE_SUB(UInt8Sub, UINT8) -DEFINE_SAFE_SUB(UShortSub, USHORT) -DEFINE_SAFE_SUB(UIntSub, UINT) -DEFINE_SAFE_SUB(UIntPtrSub, UINT_PTR) -DEFINE_SAFE_SUB(ULongSub, ULONG) -DEFINE_SAFE_SUB(ULongPtrSub, ULONG_PTR) -DEFINE_SAFE_SUB(DWordPtrSub, DWORD_PTR) -DEFINE_SAFE_SUB(SizeTSub, size_t) -DEFINE_SAFE_SUB(SIZETSub, SIZE_T) -DEFINE_SAFE_SUB(ULongLongSub, ULONGLONG) - + +#ifdef _NTINTSAFE_H_INCLUDED_ + +#define RtlInt8ToByte RtlInt8ToUInt8 +#define RtlInt8ToUInt16 RtlInt8ToUShort +#define RtlInt8ToWord RtlInt8ToUShort +#define RtlInt8ToUInt32 RtlInt8ToUInt +#define RtlInt8ToDWord RtlInt8ToULong +#define RtlInt8ToDWordPtr RtlInt8ToULongPtr +#define RtlInt8ToDWordLong RtlInt8ToULongLong +#define RtlInt8ToULong64 RtlInt8ToULongLong +#define RtlInt8ToDWord64 RtlInt8ToULongLong +#define RtlInt8ToUInt64 RtlInt8ToULongLong +#define RtlInt8ToSizeT RtlInt8ToUIntPtr +#define RtlInt8ToSIZET RtlInt8ToULongPtr +#define RtlIntToSizeT RtlIntToUIntPtr +#define RtlULongLongToInt64 RtlULongLongToLongLong +#define RtlULongLongToLong64 RtlULongLongToLongLong +#define RtlULongLongToPtrdiffT RtlULongLongToIntPtr +#define RtlULongLongToSizeT RtlULongLongToUIntPtr +#define RtlULongLongToSSIZET RtlULongLongToLongPtr +#define RtlULongLongToSIZET RtlULongLongToULongPtr +#ifdef _WIN64 +#define RtlIntToUIntPtr RtlIntToULongLong +#define RtlULongLongToIntPtr RtlULongLongToLongLong +#else +#define RtlIntToUIntPtr RtlIntToUInt +#define RtlULongLongToIntPtr RtlULongLongToInt +#define RtlULongLongToUIntPtr RtlULongLongToUInt +#define RtlULongLongToULongPtr RtlULongLongToULong +#endif + +#else // _NTINTSAFE_H_INCLUDED_ #define Int8ToByte Int8ToUInt8 #define Int8ToUInt16 Int8ToUShort @@ -483,6 +480,241 @@ #define Int8ToUInt64 Int8ToULongLong #define Int8ToSizeT Int8ToUIntPtr #define Int8ToSIZET Int8ToULongPtr +#define IntToSizeT IntToUIntPtr +#define ULongLongToInt64 ULongLongToLongLong +#define ULongLongToLong64 ULongLongToLongLong +#define ULongLongToPtrdiffT ULongLongToIntPtr +#define ULongLongToSizeT ULongLongToUIntPtr +#define ULongLongToSSIZET ULongLongToLongPtr +#define ULongLongToSIZET ULongLongToULongPtr +#ifdef _WIN64 +#define IntToUIntPtr IntToULongLong +#define ULongLongToIntPtr ULongLongToLongLong +#else +#define IntToUIntPtr IntToUInt +#define ULongLongToIntPtr ULongLongToInt +#define ULongLongToUIntPtr ULongLongToUInt +#define ULongLongToULongPtr ULongLongToULong +#endif + +#endif // _NTINTSAFE_H_INCLUDED_ + + +#define DEFINE_SAFE_ADD(_Name, _Type) \ +_Must_inspect_result_ \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _Type Augend, \ + _In_ _Type Addend, \ + _Out_ _Deref_out_range_(==, Augend + Addend) _Type *pOutput) \ +{ \ + if ((Augend + Addend) >= Augend) \ + { \ + *pOutput = Augend + Addend; \ + return INTSAFE_SUCCESS; \ + } \ + else \ + { \ + *pOutput = _Type ## _ERROR; \ + return INTSAFE_E_ARITHMETIC_OVERFLOW; \ + } \ +} + +DEFINE_SAFE_ADD(UInt8Add, UINT8) +DEFINE_SAFE_ADD(UShortAdd, USHORT) +DEFINE_SAFE_ADD(UIntAdd, UINT) +DEFINE_SAFE_ADD(UlongAdd, ULONG) +DEFINE_SAFE_ADD(UIntPtrAdd, UINT_PTR) +DEFINE_SAFE_ADD(ULongPtrAdd, ULONG_PTR) +DEFINE_SAFE_ADD(DWordPtrAdd, DWORD_PTR) +DEFINE_SAFE_ADD(SizeTAdd, size_t) +DEFINE_SAFE_ADD(SIZETAdd, SIZE_T) +DEFINE_SAFE_ADD(ULongLongAdd, ULONGLONG) + + +#define DEFINE_SAFE_SUB(_Name, _Type) \ +_Must_inspect_result_ \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _Type Minuend, \ + _In_ _Type Subtrahend, \ + _Out_ _Deref_out_range_(==, Minuend - Subtrahend) _Type* pOutput) \ +{ \ + if (Minuend >= Subtrahend) \ + { \ + *pOutput = Minuend - Subtrahend; \ + return INTSAFE_SUCCESS; \ + } \ + else \ + { \ + *pOutput = _Type ## _ERROR; \ + return INTSAFE_E_ARITHMETIC_OVERFLOW; \ + } \ +} + +DEFINE_SAFE_SUB(UInt8Sub, UINT8) +DEFINE_SAFE_SUB(UShortSub, USHORT) +DEFINE_SAFE_SUB(UIntSub, UINT) +DEFINE_SAFE_SUB(UIntPtrSub, UINT_PTR) +DEFINE_SAFE_SUB(ULongSub, ULONG) +DEFINE_SAFE_SUB(ULongPtrSub, ULONG_PTR) +DEFINE_SAFE_SUB(DWordPtrSub, DWORD_PTR) +DEFINE_SAFE_SUB(SizeTSub, size_t) +DEFINE_SAFE_SUB(SIZETSub, SIZE_T) +DEFINE_SAFE_SUB(ULongLongSub, ULONGLONG) + + +_Must_inspect_result_ +__forceinline +INTSAFE_RESULT +INTSAFE_NAME(LongLongSub)( + _In_ LONGLONG Minuend, + _In_ LONGLONG Subtrahend, + _Out_ _Deref_out_range_(==, Minuend - Subtrahend) LONGLONG* pResult) +{ + LONGLONG Result = Minuend - Subtrahend; + + /* The only way the result can overflow, is when the sign of the minuend + and the subtrahend differ. In that case the result is expected to + have the same sign as the minuend, otherwise it overflowed. + Sign equality is checked with a binary xor operation. */ + if ( ((Minuend ^ Subtrahend) < 0) && ((Minuend ^ Result) < 0) ) + { + *pResult = LONGLONG_ERROR; + return INTSAFE_E_ARITHMETIC_OVERFLOW; + } + else + { + *pResult = Result; + return INTSAFE_SUCCESS; + } +} + + +#define DEFINE_SAFE_SUB_S(_Name, _Type1, _Type2, _Convert) \ +_Must_inspect_result_ \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _Type1 Minuend, \ + _In_ _Type1 Subtrahend, \ + _Out_ _Deref_out_range_(==, Minuend - Subtrahend) _Type1* pOutput) \ +{ \ + return INTSAFE_NAME(_Convert)(((_Type2)Minuend) - ((_Type2)Subtrahend), pOutput); \ +} + +DEFINE_SAFE_SUB_S(LongSub, LONG, LONGLONG, LongLongToLong) +#ifndef _WIN64 +DEFINE_SAFE_SUB_S(IntPtrSub, INT_PTR, LONGLONG, LongLongToIntPtr) +DEFINE_SAFE_SUB_S(LongPtrSub, LONG_PTR, LONGLONG, LongLongToLongPtr) +#endif + + +_Must_inspect_result_ +__forceinline +INTSAFE_RESULT +INTSAFE_NAME(ULongLongMult)( + _In_ ULONGLONG Multiplicand, + _In_ ULONGLONG Multiplier, + _Out_ _Deref_out_range_(==, Multiplicand * Multiplier) ULONGLONG* pOutput) +{ + /* We can split the 64 bit numbers in low and high parts: + M1 = M1Low + M1Hi * 0x100000000 + M2 = M2Low + M2Hi * 0x100000000 + + Then the multiplication looks like this: + M1 * M2 = (M1Low + M1Hi * 0x100000000) + (M2Low + M2Hi * 0x100000000) + = M1Low * M2Low + + M1Low * M2Hi * 0x100000000 + + M2Low * M1Hi * 0x100000000 + + M1Hi * M2Hi * 0x100000000 * 0x100000000 + + We get an overflow when + a) M1Hi * M2Hi != 0, so when M1Hi or M2Hi are not 0 + b) The product of the nonzero high part and the other low part + is larger than 32 bits. + c) The addition of the product from b) shifted left by 32 and + M1Low * M2Low is larger than 64 bits + */ + ULONG M1Low = Multiplicand & 0xffffffff; + ULONG M2Low = Multiplier & 0xffffffff; + ULONG M1Hi = Multiplicand >> 32; + ULONG M2Hi = Multiplier >> 32; + ULONGLONG Temp; + + if (M1Hi == 0) + { + Temp = UInt32x32To64(M1Low, M2Hi); + } + else if (M2Hi == 0) + { + Temp = UInt32x32To64(M1Hi, M2Low); + } + else + { + *pOutput = LONGLONG_ERROR; + return INTSAFE_E_ARITHMETIC_OVERFLOW; + } + + if (Temp > ULONG_MAX) + { + *pOutput = LONGLONG_ERROR; + return INTSAFE_E_ARITHMETIC_OVERFLOW; + } + + return INTSAFE_NAME(ULongLongAdd)(Temp << 32, UInt32x32To64(M1Low, M2Low), pOutput); +} + + +#define DEFINE_SAFE_MULT_U32(_Name, _Type, _Convert) \ +__checkReturn \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _Type Multiplicand, \ + _In_ _Type Multiplier, \ + _Out_ _Deref_out_range_(==, Multiplicand * Multiplier) _Type* pOutput) \ +{ \ + ULONGLONG Result = UInt32x32To64(Multiplicand, Multiplier); \ + return INTSAFE_NAME(_Convert)(Result, pOutput); \ +} + +#ifndef _WIN64 +DEFINE_SAFE_MULT_U32(SizeTMult, size_t, ULongLongToSizeT) +DEFINE_SAFE_MULT_U32(SIZETMult, SIZE_T, ULongLongToSIZET) +#endif + + +#ifdef _NTINTSAFE_H_INCLUDED_ + +#define RtlUInt16Add RtlUShortAdd +#define RtlWordAdd RtlUShortAdd +#define RtlUInt32Add RtlUIntAdd +#define RtlDWordAdd RtlULongAdd +#define RtlDWordLongAdd RtlULongLongAdd +#define RtlULong64Add RtlULongLongAdd +#define RtlDWord64Add RtlULongLongAdd +#define RtlUInt64Add RtlULongLongAdd +#define RtlUInt16Sub RtlUShortSub +#define RtlWordSub RtlUShortSub +#define RtlUInt32Sub RtlUIntSub +#define RtlDWordSub RtlULongSub +#define RtlDWordLongSub RtlULongLongSub +#define RtlULong64Sub RtlULongLongSub +#define RtlDWord64Sub RtlULongLongSub +#define RtlUInt64Sub RtlULongLongSub +#ifdef _WIN64 +#define RtlIntPtrSub RtlLongLongSub +#define RtlLongPtrSub RtlLongLongSub +#define RtlSizeTMult RtlULongLongMult +#define RtlSIZETMult RtlULongLongMult +#else +#endif + +#else // _NTINTSAFE_H_INCLUDED_ + #define UInt16Add UShortAdd #define WordAdd UShortAdd #define UInt32Add UIntAdd @@ -499,6 +731,14 @@ #define ULong64Sub ULongLongSub #define DWord64Sub ULongLongSub #define UInt64Sub ULongLongSub - +#ifdef _WIN64 +#define IntPtrSub LongLongSub +#define LongPtrSub LongLongSub +#define SizeTMult ULongLongMult +#define SIZETMult ULongLongMult +#else +#endif + +#endif // _NTINTSAFE_H_INCLUDED_ #endif // !_INTSAFE_H_INCLUDED_
12 years, 6 months
1
0
0
0
[tfaber] 56749: [NTOSKRNL] - Fix wait asserts to account for the Thread->WaitNext case - At least output a warning in place of the assertion failure in KeWaitForMultipleObjects See issue #7129 for ...
by tfaber@svn.reactos.org
Author: tfaber Date: Tue Jun 19 10:43:38 2012 New Revision: 56749 URL:
http://svn.reactos.org/svn/reactos?rev=56749&view=rev
Log: [NTOSKRNL] - Fix wait asserts to account for the Thread->WaitNext case - At least output a warning in place of the assertion failure in KeWaitForMultipleObjects See issue #7129 for more details. Modified: trunk/reactos/ntoskrnl/ke/wait.c Modified: trunk/reactos/ntoskrnl/ke/wait.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/wait.c?rev=567…
============================================================================== --- trunk/reactos/ntoskrnl/ke/wait.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/wait.c [iso-8859-1] Tue Jun 19 10:43:38 2012 @@ -417,9 +417,12 @@ PLARGE_INTEGER OriginalDueTime = Timeout; ULONG Hand = 0; - ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL || - (KeGetCurrentIrql() == DISPATCH_LEVEL && - Timeout && Timeout->QuadPart == 0)); + if (Thread->WaitNext) + ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL); + else + ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL || + (KeGetCurrentIrql() == DISPATCH_LEVEL && + Timeout && Timeout->QuadPart == 0)); /* Check if the lock is already held */ if (!Thread->WaitNext) goto WaitStart; @@ -587,10 +590,17 @@ LARGE_INTEGER DueTime = {{0}}, NewDueTime, InterruptTime; ULONG Index, Hand = 0; - /* HACK: tcpip is broken and waits with spinlocks acquired (bug #7129) */ - /*ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL || - (KeGetCurrentIrql() == DISPATCH_LEVEL && - Timeout && Timeout->QuadPart == 0));*/ + if (Thread->WaitNext) + ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL); + else if (KeGetCurrentIrql() == DISPATCH_LEVEL && + (!Timeout || Timeout->QuadPart != 0)) + { + /* HACK: tcpip is broken and waits with spinlocks acquired (bug #7129) */ + DPRINT1("%s called at DISPATCH_LEVEL with non-zero timeout!\n", + __FUNCTION__); + } + else + ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL); /* Make sure the Wait Count is valid */ if (!WaitBlockArray)
12 years, 6 months
1
0
0
0
[tfaber] 56748: [NTOSKRNL] - Disable the assert in KeWaitForMultipleObjects for now, as tcpip isn't straightforward to fix See issue #7129 for more details.
by tfaber@svn.reactos.org
Author: tfaber Date: Tue Jun 19 09:47:13 2012 New Revision: 56748 URL:
http://svn.reactos.org/svn/reactos?rev=56748&view=rev
Log: [NTOSKRNL] - Disable the assert in KeWaitForMultipleObjects for now, as tcpip isn't straightforward to fix See issue #7129 for more details. Modified: trunk/reactos/ntoskrnl/ke/wait.c Modified: trunk/reactos/ntoskrnl/ke/wait.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/wait.c?rev=567…
============================================================================== --- trunk/reactos/ntoskrnl/ke/wait.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/wait.c [iso-8859-1] Tue Jun 19 09:47:13 2012 @@ -587,9 +587,10 @@ LARGE_INTEGER DueTime = {{0}}, NewDueTime, InterruptTime; ULONG Index, Hand = 0; - ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL || + /* HACK: tcpip is broken and waits with spinlocks acquired (bug #7129) */ + /*ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL || (KeGetCurrentIrql() == DISPATCH_LEVEL && - Timeout && Timeout->QuadPart == 0)); + Timeout && Timeout->QuadPart == 0));*/ /* Make sure the Wait Count is valid */ if (!WaitBlockArray)
12 years, 6 months
1
0
0
0
[tfaber] 56747: [NTOSKRNL] - Assert against waiting at DISPATCH_LEVEL
by tfaber@svn.reactos.org
Author: tfaber Date: Tue Jun 19 08:24:32 2012 New Revision: 56747 URL:
http://svn.reactos.org/svn/reactos?rev=56747&view=rev
Log: [NTOSKRNL] - Assert against waiting at DISPATCH_LEVEL Modified: trunk/reactos/ntoskrnl/ke/wait.c Modified: trunk/reactos/ntoskrnl/ke/wait.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/wait.c?rev=567…
============================================================================== --- trunk/reactos/ntoskrnl/ke/wait.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/wait.c [iso-8859-1] Tue Jun 19 08:24:32 2012 @@ -126,14 +126,14 @@ /* We depend on these bits being just right */ C_ASSERT((GM_LOCK_WAITER_WOKEN * 2) == GM_LOCK_WAITER_INC); - + /* Increase the contention count */ GuardedMutex->Contention++; - + /* Start by unlocking the Guarded Mutex */ BitsToRemove = GM_LOCK_BIT; BitsToAdd = GM_LOCK_WAITER_INC; - + /* Start change loop */ for (;;) { @@ -142,10 +142,10 @@ (BitsToRemove == (GM_LOCK_BIT | GM_LOCK_WAITER_WOKEN))); ASSERT((BitsToAdd == GM_LOCK_WAITER_INC) || (BitsToAdd == GM_LOCK_WAITER_WOKEN)); - + /* Get the Count Bits */ OldValue = GuardedMutex->Count; - + /* Start internal bit change loop */ for (;;) { @@ -155,7 +155,7 @@ /* Sanity check */ ASSERT((BitsToRemove == GM_LOCK_BIT) || ((OldValue & GM_LOCK_WAITER_WOKEN) != 0)); - + /* Unlock it by removing the Lock Bit */ NewValue = OldValue ^ BitsToRemove; NewValue = InterlockedCompareExchange(&GuardedMutex->Count, @@ -172,15 +172,15 @@ OldValue); if (NewValue == OldValue) break; } - + /* Old value changed, loop again */ OldValue = NewValue; } - + /* Now we have to wait for it */ KeWaitForGate(&GuardedMutex->Gate, WrGuardedMutex, KernelMode); ASSERT((GuardedMutex->Count & GM_LOCK_WAITER_WOKEN) != 0); - + /* Ok, the wait is done, so set the new bits */ BitsToRemove = GM_LOCK_BIT | GM_LOCK_WAITER_WOKEN; BitsToAdd = GM_LOCK_WAITER_WOKEN; @@ -416,6 +416,10 @@ LARGE_INTEGER DueTime = {{0}}, NewDueTime, InterruptTime; PLARGE_INTEGER OriginalDueTime = Timeout; ULONG Hand = 0; + + ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL || + (KeGetCurrentIrql() == DISPATCH_LEVEL && + Timeout && Timeout->QuadPart == 0)); /* Check if the lock is already held */ if (!Thread->WaitNext) goto WaitStart; @@ -582,6 +586,10 @@ PLARGE_INTEGER OriginalDueTime = Timeout; LARGE_INTEGER DueTime = {{0}}, NewDueTime, InterruptTime; ULONG Index, Hand = 0; + + ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL || + (KeGetCurrentIrql() == DISPATCH_LEVEL && + Timeout && Timeout->QuadPart == 0)); /* Make sure the Wait Count is valid */ if (!WaitBlockArray)
12 years, 6 months
1
0
0
0
[tfaber] 56746: [FUSION_WINETEST] - Fix a warning. Already applied upstream. [WS2_32_WINETEST] - Fix an ok(). Already applied upstream.
by tfaber@svn.reactos.org
Author: tfaber Date: Tue Jun 19 03:53:47 2012 New Revision: 56746 URL:
http://svn.reactos.org/svn/reactos?rev=56746&view=rev
Log: [FUSION_WINETEST] - Fix a warning. Already applied upstream. [WS2_32_WINETEST] - Fix an ok(). Already applied upstream. Modified: trunk/rostests/winetests/fusion/asmcache.c trunk/rostests/winetests/ws2_32/sock.c Modified: trunk/rostests/winetests/fusion/asmcache.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/fusion/asmcache…
============================================================================== --- trunk/rostests/winetests/fusion/asmcache.c [iso-8859-1] (original) +++ trunk/rostests/winetests/fusion/asmcache.c [iso-8859-1] Tue Jun 19 03:53:47 2012 @@ -412,7 +412,7 @@ 5, /* MinorRuntimeVersion */ { 0x2188, 0x1B4 }, /* MetaData */ COMIMAGE_FLAGS_ILONLY | COMIMAGE_FLAGS_STRONGNAMESIGNED, /* Flags */ - 0, /* EntryPointToken */ + { 0 }, /* EntryPointToken */ { 0x20D0, 0xB8 }, /* Resources */ { 0x2050, 0x80 }, /* StrongNameSignature */ { 0 }, /* CodeManagerTable */ Modified: trunk/rostests/winetests/ws2_32/sock.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ws2_32/sock.c?r…
============================================================================== --- trunk/rostests/winetests/ws2_32/sock.c [iso-8859-1] (original) +++ trunk/rostests/winetests/ws2_32/sock.c [iso-8859-1] Tue Jun 19 03:53:47 2012 @@ -1030,14 +1030,14 @@ SetLastError(0xdeadbeef); err = setsockopt(s, 0xffffffff, SO_RCVTIMEO, (char *) &timeout, size); ok( (err == SOCKET_ERROR) && (WSAGetLastError() == WSAEINVAL), - "got %d with %d (expected SOCKET_ERROR with WSAEINVAL\n", + "got %d with %d (expected SOCKET_ERROR with WSAEINVAL)\n", err, WSAGetLastError()); timeout = SOCKTIMEOUT1; SetLastError(0xdeadbeef); err = setsockopt(s, 0x00008000, SO_RCVTIMEO, (char *) &timeout, size); ok( (err == SOCKET_ERROR) && (WSAGetLastError() == WSAEINVAL), - "got %d with %d (expected SOCKET_ERROR with WSAEINVAL\n", + "got %d with %d (expected SOCKET_ERROR with WSAEINVAL)\n", err, WSAGetLastError()); closesocket(s);
12 years, 6 months
1
0
0
0
[dreimer] 56745: Update Rapps Links
by dreimer@svn.reactos.org
Author: dreimer Date: Mon Jun 18 20:33:22 2012 New Revision: 56745 URL:
http://svn.reactos.org/svn/reactos?rev=56745&view=rev
Log: Update Rapps Links Modified: trunk/reactos/base/applications/rapps/rapps/abyss.txt trunk/reactos/base/applications/rapps/rapps/doublecommander.txt trunk/reactos/base/applications/rapps/rapps/firefox5.txt trunk/reactos/base/applications/rapps/rapps/irfanview.txt trunk/reactos/base/applications/rapps/rapps/irfanviewplugins.txt trunk/reactos/base/applications/rapps/rapps/kdewin.txt trunk/reactos/base/applications/rapps/rapps/libreoffice.txt trunk/reactos/base/applications/rapps/rapps/mirandaim.txt trunk/reactos/base/applications/rapps/rapps/mirc.txt trunk/reactos/base/applications/rapps/rapps/mono2.txt trunk/reactos/base/applications/rapps/rapps/mpc.txt trunk/reactos/base/applications/rapps/rapps/openoffice3.0.txt trunk/reactos/base/applications/rapps/rapps/openttd.txt trunk/reactos/base/applications/rapps/rapps/opera.txt trunk/reactos/base/applications/rapps/rapps/python.txt trunk/reactos/base/applications/rapps/rapps/python3.txt trunk/reactos/base/applications/rapps/rapps/scite.txt trunk/reactos/base/applications/rapps/rapps/seamonkey.txt trunk/reactos/base/applications/rapps/rapps/smplayer.txt trunk/reactos/base/applications/rapps/rapps/sumatrapdf.txt trunk/reactos/base/applications/rapps/rapps/thunderbird5.txt trunk/reactos/base/applications/rapps/rapps/vlc.txt Modified: trunk/reactos/base/applications/rapps/rapps/abyss.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/abyss.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/abyss.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,7 +2,7 @@ [Section] Name = Abyss Web server X1 -Version = 2.7 +Version = 2.8 Licence = Freeware Description = Abyss Web Server enables you to host your Web sites on your computer. It supports secure SSL/TLS connections (HTTPS) as well as a wide range of Web technologies. It can also run advanced PHP, Perl, Python, ASP,
ASP.NET
, and Ruby on Rails Web applications, which can be backed by databases such as MySQL, SQLite, MS SQL Server, MS Access, or Oracle. Size = 1.82MB Modified: trunk/reactos/base/applications/rapps/rapps/doublecommander.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/doublecommander.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/doublecommander.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = Double Commander -Version = 0.5.3 +Version = 0.5.4 Licence = GPL Description = Double Commander is an open source file manager with two panels side by side. You need 7-Zip or a similar Utility to extract it. Size = 6.5MB Category = 12 URLSite =
http://doublecmd.sourceforge.net/
-URLDownload =
http://freefr.dl.sourceforge.net/project/doublecmd/DC%20for%20Windows%2032%…
+URLDownload =
http://freefr.dl.sourceforge.net/project/doublecmd/DC%20for%20Windows%2032%…
CDPath = none [Section.0415] Modified: trunk/reactos/base/applications/rapps/rapps/firefox5.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/firefox5.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/firefox5.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -1,66 +1,66 @@ ; UTF-8 [Section] -Name = Mozilla Firefox 11 -Version = 11.0 +Name = Mozilla Firefox 13 +Version = 13.0.1 Licence = MPL/GPL/LGPL Description = The most popular and one of the best free Web Browsers out there. -Size = 15.06MB +Size = 15.8MB Category = 5 URLSite =
http://www.mozilla.com/en-US/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/en-…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/e…
CDPath = none [Section.0407] Description = Der populärste und einer der besten freien Webbrowser. -Size = 14.92MB +Size = 15.7MB URLSite =
http://www.mozilla-europe.org/de/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/de/…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/d…
[Section.040a] Description = El más popular y uno de los mejores navegadores web gratuitos que hay. -Size = 14.88MB +Size = 15.6MB URLSite =
http://www.mozilla-europe.org/es/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/es-…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/e…
[Section.040c] Description = Le navigateur web gratuit le plus populaire et l'un des meilleurs. -Size = 15.18MB +Size = 15.9MB URLSite =
http://www.mozilla-europe.org/fr/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/fr/…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/f…
[Section.0414] Description = Mest populære og best også gratis nettleserene der ute. -Size = 14.91MB +Size = 15.6MB URLSite =
http://www.mozilla-europe.org/no/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/nb-…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/n…
[Section.0415] Description = Najpopularniejsza i jedna z najlepszych darmowych przeglÄ darek internetowych. -Size = 15.76MB +Size = 16.5MB URLSite =
http://www.mozilla-europe.org/pl/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/pl/…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/p…
[Section.0418] Description = Cel mai popular Èi unul dintre cele mai bune navigatoare web gratuite existente. -Size = 15.7Mo +Size = 16.1Mo URLSite =
http://www.mozilla-europe.org/ro/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/ro/…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/r…
[Section.0419] Description = Ðдин из ÑамÑÑ Ð¿Ð¾Ð¿ÑлÑÑнÑÑ Ð¸ лÑÑÑÐ¸Ñ Ð±ÐµÑплаÑнÑÑ Ð±ÑаÑзеÑов. -Size = 15.33MB +Size = 16.1MB URLSite =
http://www.mozilla-europe.org/ru/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/ru/…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/r…
[Section.041b] Description = NajpopulárnejÅ¡Ã a jeden z najlepÅ¡Ãch slobodný webových prehliadaÄov. -Size = 15.57MB +Size = 16.3MB URLSite =
http://www.mozilla-europe.org/sk/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/sk/…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/s…
[Section.0422] Description = ÐайпопÑлÑÑнÑÑий Ñа один з кÑаÑÐ¸Ñ Ð±ÐµÐ·Ð¿Ð»Ð°ÑÐ½Ð¸Ñ Ð²ÐµÐ±-бÑаÑзеÑÑв. -Size = 15.32MB +Size = 16.1MB URLSite =
http://www.mozilla-europe.org/uk/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/win32/uk/…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/13.0.1/win32/u…
Modified: trunk/reactos/base/applications/rapps/rapps/irfanview.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/irfanview.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/irfanview.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = IrfanView -Version = 4.32 +Version = 4.33 Licence = Freeware (for personal use) Description = Viewer for all kinds of graphics/audio files/video files. Size = 1.46MB Category = 3 URLSite =
http://www.irfanview.com/
-URLDownload =
http://irfanview.tuwien.ac.at/iview432_setup.exe
+URLDownload =
http://irfanview.tuwien.ac.at/iview433_setup.exe
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/irfanviewplugins.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/irfanviewplugins.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/irfanviewplugins.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = IrfanView Plugins -Version = 4.32 +Version = 4.33 Licence = Freeware (for personal use) Description = Additional Plugins for supporting more file types. Size = 8.92MB Category = 3 URLSite =
http://www.irfanview.com/
-URLDownload =
http://irfanview.tuwien.ac.at/plugins/irfanview_plugins_432_setup.exe
+URLDownload =
http://irfanview.tuwien.ac.at/plugins/irfanview_plugins_433_setup.exe
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/kdewin.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/kdewin.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/kdewin.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = K Desktop Environment -Version = 0.9.9-5 +Version = 0.9.9-7 Licence = GPL Description = KDE for Windows. Size = 2.21MB Category = 15 URLSite =
http://www.winkde.org/
-URLDownload =
http://www.winkde.org/pub/kde/ports/win32/installer/kdewin-installer-gui-0.…
+URLDownload =
http://www.winkde.org/pub/kde/ports/win32/installer/kdewin-installer-gui-0.…
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/libreoffice.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/libreoffice.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/libreoffice.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = LibreOffice -Version = 3.5.1 +Version = 3.5.4 Licence = LGPL Description = Former called OpenOffice. Open Source Office Suite. Size = 201.6MB Category = 6 URLSite =
http://www.documentfoundation.org/
-URLDownload =
http://download.documentfoundation.org/libreoffice/stable/3.5.1/win/x86/Lib…
+URLDownload =
http://download.documentfoundation.org/libreoffice/stable/3.5.4/win/x86/Lib…
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/mirandaim.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/mirandaim.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/mirandaim.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = Miranda IM -Version = 0.9.46 +Version = 0.9.52 Licence = GPL Description = Open source multiprotocol instant messaging application - May not work completely. Size = 3.1MB Category = 5 URLSite =
http://www.miranda-im.org/
-URLDownload =
http://miranda.googlecode.com/files/miranda-im-v0.9.46-unicode.exe
+URLDownload =
http://miranda.googlecode.com/files/miranda-im-v0.9.52-unicode.exe
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/mirc.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/mirc.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/mirc.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = mIRC 7 -Version = 7.22 +Version = 7.25 Licence = Shareware Description = The most popular client for the Internet Relay Chat (IRC). Size = 1.82MB Category = 5 URLSite =
http://www.mirc.com/
-URLDownload =
http://download.mirc.com/3/mirc722.exe
+URLDownload =
http://download.mirc.com/5/mirc725.exe
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/mono2.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/mono2.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/mono2.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = Mono .net Development Framework -Version = 2.10.8 +Version = 2.11.1 Licence = Unknown Description = Open Source .net Framework. -Size = 79.47MB +Size = 88.6MB Category = 14 URLSite =
http://www.mono-project.com/Main_Page
-URLDownload =
http://download.mono-project.com/archive/2.10.8/windows-installer/1/mono-2.…
+URLDownload =
http://origin-download.mono-project.com/archive/2.11.1/windows-installer/mo…
CDPath = none [Section.040a] Modified: trunk/reactos/base/applications/rapps/rapps/mpc.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/mpc.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/mpc.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = Media Player Classic Home Cinema -Version = 1.6.0.4014 +Version = 1.6.2.4902 Licence = GPL Description = A media player. -Size = 5.57MB +Size = 5.9MB Category = 1 URLSite =
http://mpc-hc.sourceforge.net/
-URLDownload =
http://freefr.dl.sourceforge.net/project/mpc-hc/MPC%20HomeCinema%20-%20Win3…
+URLDownload =
http://heanet.dl.sourceforge.net/project/mpc-hc/MPC%20HomeCinema%20-%20Win3…
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/openoffice3.0.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/openoffice3.0.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/openoffice3.0.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -5,42 +5,38 @@ Version = 3.3.0 Licence = LGPL Description = THE Open Source Office Suite. -Size = 136.79MB +Size = 145.0MB Category = 6 URLSite =
http://www.openoffice.org/
-URLDownload =
http://ftp3.gwdg.de/pub/openoffice/stable/3.3.0/OOo_3.3.0_Win_x86_install_e…
+URLDownload =
http://dfn.dl.sourceforge.net/project/openofficeorg.mirror/stable/3.4.0/Apa…
CDPath = none [Section.0407] Description = DIE Open Source Office Suite. URLSite =
http://de.openoffice.org/
-Size = 160.38MB -URLDownload =
http://ftp3.gwdg.de/pub/openoffice/localized/de/3.3.0/OOo_3.3.0_Win_x86_ins…
+Size = 145.0MB +URLDownload =
http://dfn.dl.sourceforge.net/project/openofficeorg.mirror/localized/de/3.4…
[Section.040a] Description = La suite de ofimática de código abierto. URLSite =
http://es.openoffice.org/
-Size = 132.4MB -URLDownload =
http://ftp.gwdg.de/pub/openoffice/localized/es/3.3.0/OOo_3.3.0_Win_x86_inst…
+Size = 119.0MB +URLDownload =
http://dfn.dl.sourceforge.net/project/openofficeorg.mirror/localized/es/3.4…
[Section.040c] Description = LA suite bureautique open source. URLSite =
http://fr.openoffice.org/
-Size = 131.45MB -URLDownload =
http://ftp.gwdg.de/pub/openoffice/localized/fr/3.3.0/OOo_3.3.0_Win_x86_inst…
+Size = 120.0MB +URLDownload =
http://dfn.dl.sourceforge.net/project/openofficeorg.mirror/localized/fr/3.4…
[Section.0415] Description = Otwarty pakiet biurowy. URLSite =
http://pl.openoffice.org/
Size = 134.33MB -URLDownload =
http://ftp3.gwdg.de/pub/openoffice/localized/pl/3.3.0/OOo_3.3.0_Win_x86_ins…
- -[Section.0422] -Description = Suita de aplicaÈii de biroticÄ open-source. -Size = 136.79Mo +URLDownload =
http://dfn.dl.sourceforge.net/project/openofficeorg.mirror/localized/pl/3.3…
[Section.0422] Description = ÐÑдкÑиÑий оÑÑÑний пакеÑ. URLSite =
http://ua.openoffice.org/
-Size = 132.82MB -URLDownload =
http://ftp3.gwdg.de/pub/openoffice/localized/ru/3.3.0/OOo_3.3.0_Win_x86_ins…
+Size = 123.0MB +URLDownload =
http://heanet.dl.sourceforge.net/project/openofficeorg.mirror/localized/ru/…
Modified: trunk/reactos/base/applications/rapps/rapps/openttd.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/openttd.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/openttd.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = OpenTTD -Version = 1.1.5 +Version = 1.2.1 Licence = GPL v2 Description = Open Source clone of the "Transport Tycoon Deluxe" game engine. You need a copy of Transport Tycoon. -Size = 4.13MB +Size = 4.4MB Category = 4 URLSite =
http://www.openttd.org/
-URLDownload =
http://binaries.openttd.org/releases/1.1.5/openttd-1.1.5-windows-win32.exe
+URLDownload =
http://binaries.openttd.org/releases/1.2.1/openttd-1.2.1-windows-win32.exe
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/opera.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/opera.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/opera.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = Opera -Version = 11.61 +Version = 11.64 Licence = Freeware Description = The popular Opera Browser with many advanced features and including a Mail and BitTorrent client. Size = 10.13MB Category = 5 URLSite =
http://www.opera.com/
-URLDownload =
http://get4.opera.com/pub/opera/win/1161/int/Opera_1161_int_Setup.exe
+URLDownload =
http://get4.opera.com/pub/opera/win/1164/int/Opera_1164_int_Setup.exe
CDPath = none [Section.0405] Modified: trunk/reactos/base/applications/rapps/rapps/python.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/python.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/python.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = Python 2 -Version = 2.7.2 +Version = 2.7.3 Licence = GPL/LGPL Description = A remarkably powerful dynamic programming language. -Size = 15.23MB +Size = 15.1MB Category = 7 URLSite =
http://www.python.org/
-URLDownload =
http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
+URLDownload =
http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/python3.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/python3.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/python3.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = Python 3 -Version = 3.2.2 +Version = 3.2.3 Licence = GPL/LGPL Description = A remarkably powerful dynamic programming language. -Size = 17.2MB +Size = 17.0MB Category = 7 URLSite =
http://www.python.org/
-URLDownload =
http://www.python.org/ftp/python/3.2.2/python-3.2.2.msi
+URLDownload =
http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/scite.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/scite.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/scite.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = SciTE -Version = 3.0.4 +Version = 3.2.0 Licence = Freeware Description = SciTE is a SCIntilla based Text Editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs. -Size = 677kB +Size = 683kB Category = 7 URLSite =
http://www.scintilla.org/
-URLDownload =
http://dfn.dl.sourceforge.net/project/scintilla/SciTE/3.0.4/Sc304.exe
+URLDownload =
http://heanet.dl.sourceforge.net/project/scintilla/SciTE/3.2.0/Sc320.exe
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/seamonkey.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/seamonkey.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/seamonkey.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,34 +2,34 @@ [Section] Name = Mozilla SeaMonkey -Version = 2.8 +Version = 2.10.1 Licence = MPL/GPL/LGPL Description = Mozilla Suite is alive. This is the one and only Browser, Mail, Chat, and Composer bundle you will ever need. -Size = 17.59MB +Size = 19.0MB Category = 5 URLSite =
http://www.seamonkey-project.org/
-URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.8/win32/en-US/SeaMonkey%2…
+URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.10.1/win32/en-US/SeaMonke…
CDPath = none [Section.0407] Description = Mozilla Suite lebt. Dies ist das einzige Browser-, Mail-, Chat- and Composerwerkzeug-Bundle welches Sie benötigen. -Size = 17.56MB -URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.8/win32/de/SeaMonkey%20Se…
+Size = 19.0MB +URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.10.1/win32/de/SeaMonkey%2…
[Section.040a] Description = La suite de Mozilla está viva. Es el primero y único navegador web, gestor de correo, lector de noticias, Chat y editor HTML que necesitarás. -Size = 17.49MB -URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.8/win32/es-ES/SeaMonkey%2…
+Size = 18.9MB +URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.10.1/win32/es-ES/SeaMonke…
[Section.040c] Description = La suite Mozilla est en vie. Ceci est le seul et l'unique package navigateur, client mail, client chat et composer dont vous aurez besoin. -Size = 17.79MB -URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.8/win32/fr/SeaMonkey%20Se…
+Size = 19.2MB +URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.10.1/win32/fr/SeaMonkey%2…
[Section.0415] Description = Pakiet Mozilla żyje. W zestawie: przeglÄ darka, klient poczty, IRC oraz Edytor HTML - wszystko, czego potrzebujesz. -Size = 18.38MB -URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.8/win32/pl/SeaMonkey%20Se…
+Size = 19.8MB +URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.10.1/win32/pl/SeaMonkey%2…
[Section.0418] Description = Suita Mozilla. Acest pachet ce încorporeazÄ navigator, poÈtÄ electronicÄ, client IRC Èi editor HTML, acoperind astfel o arie largÄ de necesitÄÈi. @@ -37,10 +37,10 @@ [Section.0419] Description = ÐÑодолжение Mozilla Suite. ÐклÑÑÐ°ÐµÑ Ð±ÑаÑзеÑ, поÑÑовÑй клиенÑ, IRC-ÐºÐ»Ð¸ÐµÐ½Ñ Ð¸ HTML-ÑедакÑоÑ. -Size = 18.01MB -URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.8/win32/ru/SeaMonkey%20Se…
+Size = 19.5MB +URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.10.1/win32/ru/SeaMonkey%2…
[Section.0422] Description = ÐÑÐ¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Mozilla Suite. ÐклÑÑÐ°Ñ Ð² Ñебе бÑаÑзеÑ, поÑÑовий клÑÑнÑ, IRC-клÑÑÐ½Ñ Ñа HTML-ÑедакÑоÑ. -Size = 18.01MB -URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.8/win32/ru/SeaMonkey%20Se…
+Size = 19.5MB +URLDownload =
http://ftp.df.lth.se/mozilla/seamonkey/releases/2.10.1/win32/ru/SeaMonkey%2…
Modified: trunk/reactos/base/applications/rapps/rapps/smplayer.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/smplayer.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/smplayer.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = SMPlayer -Version = 0.7.1 +Version = 0.8.0 Licence = GPL Description = SMPlayer. -Size = 15.1MB +Size = 15.7MB Category = 1 URLSite =
http://smplayer.sourceforge.net/
-URLDownload =
http://freefr.dl.sourceforge.net/project/smplayer/SMPlayer/0.7.1/smplayer-0…
+URLDownload =
http://freefr.dl.sourceforge.net/project/smplayer/SMPlayer/0.8.0/smplayer-0…
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/sumatrapdf.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/sumatrapdf.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/sumatrapdf.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = SumatraPDF -Version = 1.9 +Version = 2.1.1 Licence = GPLv3 Description = Sumatra PDF is a slim, free, open-source PDF reader. Portable out of the box. -Size = 4.48MB +Size = 4.2MB Category = 6 URLSite =
http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html
-URLDownload =
http://kjkpub.s3.amazonaws.com/sumatrapdf/rel/SumatraPDF-1.9-install.exe
+URLDownload =
https://kjkpub.s3.amazonaws.com/sumatrapdf/rel/SumatraPDF-2.1.1-install.exe
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/thunderbird5.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/thunderbird5.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/thunderbird5.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -1,54 +1,54 @@ ; UTF-8 [Section] -Name = Mozilla Thunderbird 11 -Version = 11.0 +Name = Mozilla Thunderbird 13 +Version = 13.0.1 Licence = MPL/GPL/LGPL Description = The most popular and one of the best free Mail Clients out there. -Size = 16.22MB +Size = 17.6MB Category = 5 URLSite =
http://www.mozilla-europe.org/en/products/thunderbird/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/11.0/win32…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/13.0.1/win…
CDPath = none [Section.0407] Description = Der populärste und einer der besten freien Mail-Clients. -Size = 15.1MB +Size = 17.5MB URLSite =
http://www.mozilla-europe.org/de/products/thunderbird/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/11.0/win32…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/13.0.1/win…
[Section.040a] Description = El más popular y uno de los mejores clientes mail que hay. -Size = 15.0MB +Size = 17.4MB URLSite =
http://www.mozilla-europe.org/es/products/thunderbird/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/11.0/win32…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/13.0.1/win…
[Section.040c] Description = Le plus populaire et l'un des meilleurs clients mail gratuits disponible. -Size = 15.4MB +Size = 17.8MB URLSite =
http://www.mozilla-europe.org/fr/products/thunderbird/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/11.0/win32…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/13.0.1/win…
[Section.0415] Description = Najpopularniejszy i jeden z najlepszych darmowych klientów poczty. -Size = 15.9MB +Size = 18.3MB URLSite =
http://www.mozilla-europe.org/pl/products/thunderbird/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/11.0/win32…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/13.0.1/win…
[Section.0418] Description = Cel mai popular Èi unul dintre cele mai bune clientele gratuite de poÈtÄ electronicÄ. -Size = 16.5Mo +Size = 18.0Mo URLSite =
http://www.mozilla-europe.org/ro/products/thunderbird/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/11.0/win32…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/13.0.1/win…
[Section.0419] Description = Ðдин из ÑамÑÑ Ð¿Ð¾Ð¿ÑлÑÑнÑÑ Ð¸ лÑÑÑÐ¸Ñ Ð±ÐµÑплаÑнÑÑ Ð¿Ð¾ÑÑовÑÑ ÐºÐ»Ð¸ÐµÐ½Ñов. -Size = 15.5MB +Size = 17.9MB URLSite =
http://www.mozilla-europe.org/ru/products/thunderbird/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/11.0/win32…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/13.0.1/win…
[Section.0422] Description = ÐайпопÑлÑÑнÑÑий Ñа один з кÑаÑÐ¸Ñ Ð¿Ð¾ÑÑÐ¾Ð²Ð¸Ñ ÐºÐ»ÑÑнÑÑв. -Size = 15.5MB +Size = 17.9MB URLSite =
http://www.mozillamessaging.com/uk/thunderbird/
-URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/11.0/win32…
+URLDownload =
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/13.0.1/win…
Modified: trunk/reactos/base/applications/rapps/rapps/vlc.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/vlc.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/vlc.txt [iso-8859-1] Mon Jun 18 20:33:22 2012 @@ -2,13 +2,13 @@ [Section] Name = VLC media player -Version = 2.0.0 +Version = 2.0.1 Licence = GPL Description = A media player. -Size = 21.1MB +Size = 21.2MB Category = 1 URLSite =
http://www.videolan.org/vlc/
-URLDownload =
http://kent.dl.sourceforge.net/project/vlc/2.0.0/win32/vlc-2.0.0-win32.exe
+URLDownload =
http://kent.dl.sourceforge.net/project/vlc/2.0.1/win32/vlc-2.0.1-win32.exe
CDPath = none [Section.0407]
12 years, 6 months
1
0
0
0
[tkreuzer] 56744: [PSDK/DDK] Add intsafe.h and ntintsafe.h (incomplete)
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Sun Jun 17 16:38:58 2012 New Revision: 56744 URL:
http://svn.reactos.org/svn/reactos?rev=56744&view=rev
Log: [PSDK/DDK] Add intsafe.h and ntintsafe.h (incomplete) Added: trunk/reactos/include/ddk/ntintsafe.h (with props) trunk/reactos/include/psdk/intsafe.h (with props) Added: trunk/reactos/include/ddk/ntintsafe.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntintsafe.h?re…
============================================================================== --- trunk/reactos/include/ddk/ntintsafe.h (added) +++ trunk/reactos/include/ddk/ntintsafe.h [iso-8859-1] Sun Jun 17 16:38:58 2012 @@ -1,0 +1,33 @@ +/* + * ntintsafe.h + * + * Windows NT helper functions for integer overflow prevention + * + * This file is part of the ReactOS DDK package. + * + * Contributors: + * Timo Kreuzer (timo.kreuzer(a)reactos.org) + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ +#pragma once + +#ifndef _NTINTSAFE_H_INCLUDED_ +#define _NTINTSAFE_H_INCLUDED_ + +/* Include the sdk version */ +#include <intsafe.h> + +/* We don't want this one */ +#undef _INTSAFE_H_INCLUDED_ + +#endif // !_NTINTSAFE_H_INCLUDED_ Propchange: trunk/reactos/include/ddk/ntintsafe.h ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/include/psdk/intsafe.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/intsafe.h?rev…
============================================================================== --- trunk/reactos/include/psdk/intsafe.h (added) +++ trunk/reactos/include/psdk/intsafe.h [iso-8859-1] Sun Jun 17 16:38:58 2012 @@ -1,0 +1,504 @@ +/*! + * \file intsafe.h + * + * \brief Windows helper functions for integer overflow prevention + * + * \package This file is part of the ReactOS PSDK package. + * + * \author + * Timo Kreuzer (timo.kreuzer(a)reactos.org) + * + * \copyright THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * \todo + * - missing conversion functions + * - multiplication functions + * - signed add, sub and multiply functions + */ +#pragma once + +#ifndef _INTSAFE_H_INCLUDED_ +#define _INTSAFE_H_INCLUDED_ + +#include <specstrings.h> + +#if defined(__GNUC__) && !defined(__forceinline) +#define __forceinline extern __inline __attribute((always_inline)) +#endif + +/* Handle ntintsafe here too */ +#ifdef _NTINTSAFE_H_INCLUDED_ +#ifndef NT_SUCCESS /* Guard agains redefinition from ntstatus.h */ +typedef _Return_type_success_(return >= 0) long NTSTATUS; +#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) +#define STATUS_SUCCESS ((NTSTATUS)0x00000000L) +#endif +#define INTSAFE_RESULT NTSTATUS +#define INTSAFE_SUCCESS STATUS_SUCCESS +#define INTSAFE_E_ARITHMETIC_OVERFLOW STATUS_INTEGER_OVERFLOW +#define INTSAFE_NAME(name) Rtl##name +#else // _NTINTSAFE_H_INCLUDED_ +#ifndef SUCCEEDED /* Guard agains redefinition from winerror.h */ +typedef _Return_type_success_(return >= 0) long HRESULT; +#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) +#define FAILED(hr) (((HRESULT)(hr)) < 0) +#define S_OK ((HRESULT)0L) +#endif +#define INTSAFE_RESULT HRESULT +#define INTSAFE_SUCCESS S_OK +#define INTSAFE_E_ARITHMETIC_OVERFLOW ((HRESULT)0x80070216L) +#define INTSAFE_NAME(name) name +#endif // _NTINTSAFE_H_INCLUDED_ + +#if !defined(_W64) +#if defined(_MSC_VER) && !defined(__midl) && (defined(_M_IX86) || defined(_M_ARM)) +#define _W64 __w64 +#else +#define _W64 +#endif +#endif + +/* Static assert */ +#ifndef C_ASSERT +#ifdef _MSC_VER +# define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] +#else +# define C_ASSERT(e) extern void __C_ASSERT__(int [(e)?1:-1]) +#endif +#endif /* C_ASSERT */ + +/* Typedefs */ +#ifndef _WINNT_ +typedef char CHAR; +typedef signed char INT8; +typedef unsigned char UCHAR, UINT8, BYTE; +typedef short SHORT; +typedef signed short INT16; +typedef unsigned short USHORT, UINT16, WORD; +typedef int INT; +typedef signed int INT32; +typedef unsigned int UINT, UINT32; +typedef long LONG; +typedef unsigned long ULONG, DWORD; +typedef long long LONGLONG, LONG64; +typedef signed long long INT64; +typedef unsigned long long ULONGLONG, DWORDLONG, ULONG64, DWORD64, UINT64; +#ifdef _WIN64 +typedef long long INT_PTR, LONG_PTR, SSIZE_T, ptrdiff_t; +typedef unsigned long long UINT_PTR, ULONG_PTR, DWORD_PTR, SIZE_T, size_t; +#else // _WIN64 +typedef _W64 int INT_PTR, ptrdiff_t; +typedef _W64 unsigned int UINT_PTR, size_t; +typedef _W64 long LONG_PTR, SSIZE_T; +typedef _W64 unsigned long ULONG_PTR, DWORD_PTR, SIZE_T; +#endif // _WIN64 +#endif // _WINNT_ + +/* Just to be sure! */ +C_ASSERT(sizeof(USHORT) == 2); +C_ASSERT(sizeof(INT) == 4); +C_ASSERT(sizeof(UINT) == 4); +C_ASSERT(sizeof(LONG) == 4); +C_ASSERT(sizeof(ULONG) == 4); +C_ASSERT(sizeof(UINT_PTR) == sizeof(ULONG_PTR)); + +/* Integer range margins (use (x-1) to prevent warnings) */ +#define INT8_MIN (-128) +#define SHORT_MIN (-32768) +#define INT16_MIN (-32768) +#define INT_MIN (-2147483647 - 1) +#define INT32_MIN (-2147483647 - 1) +#define LONG_MIN (-2147483647L - 1) +#define LONGLONG_MIN (-9223372036854775808LL) +#define LONG64_MIN (-9223372036854775808LL) +#define INT64_MIN (-9223372036854775808LL) +//#define INT128_MIN (-170141183460469231731687303715884105728) +#ifdef _WIN64 +#define INT_PTR_MIN INT64_MIN +#define LONG_PTR_MIN LONG64_MIN +#define PTRDIFF_T_MIN INT64_MIN +#define SSIZE_T_MIN INT64_MIN +#else // _WIN64 +#define INT_PTR_MIN INT_MIN +#define LONG_PTR_MIN LONG_MIN +#define PTRDIFF_T_MIN INT_MIN +#define SSIZE_T_MIN INT_MIN +#endif // _WIN64 + +#define INT8_MAX 127 +#define UINT8_MAX 0xff +#define UCHAR_MAX 0xff +#define BYTE_MAX 0xff +#define SHORT_MAX 32767 +#define INT16_MAX 32767 +#define USHORT_MAX 0xffff +#define UINT16_MAX 0xffff +#define WORD_MAX 0xffff +#define INT_MAX 2147483647 +#define INT32_MAX 2147483647 +#define UINT_MAX 0xffffffff +#define UINT32_MAX 0xffffffff +#define LONG_MAX 2147483647L +#define ULONG_MAX 0xffffffffUL +#define DWORD_MAX 0xffffffffUL +#define LONGLONG_MAX 9223372036854775807LL +#define LONG64_MAX 9223372036854775807LL +#define INT64_MAX 9223372036854775807LL +#define ULONGLONG_MAX 0xffffffffffffffffULL +#define DWORDLONG_MAX 0xffffffffffffffffULL +#define ULONG64_MAX 0xffffffffffffffffULL +#define DWORD64_MAX 0xffffffffffffffffULL +#define UINT64_MAX 0xffffffffffffffffULL +#define INT128_MAX 170141183460469231731687303715884105727 +#define UINT128_MAX 0xffffffffffffffffffffffffffffffff +#undef SIZE_T_MAX +#ifdef _WIN64 +#define INT_PTR_MAX INT64_MAX +#define UINT_PTR_MAX UINT64_MAX +#define LONG_PTR_MAX LONG64_MAX +#define ULONG_PTR_MAX ULONG64_MAX +#define DWORD_PTR_MAX DWORD64_MAX +#define PTRDIFF_T_MAX INT64_MAX +#define SIZE_T_MAX UINT64_MAX +#define SSIZE_T_MAX INT64_MAX +#define _SIZE_T_MAX UINT64_MAX +#else // _WIN64 +#define INT_PTR_MAX INT_MAX +#define UINT_PTR_MAX UINT_MAX +#define LONG_PTR_MAX LONG_MAX +#define ULONG_PTR_MAX ULONG_MAX +#define DWORD_PTR_MAX DWORD_MAX +#define PTRDIFF_T_MAX INT_MAX +#define SIZE_T_MAX UINT_MAX +#define SSIZE_T_MAX INT_MAX +#define _SIZE_T_MAX UINT_MAX +#endif // _WIN64 + +#ifndef CHAR_MIN +#ifdef _CHAR_UNSIGNED +#define CHAR_MIN 0 +#define CHAR_MAX 0xff +#else +#define CHAR_MIN (-128) +#define CHAR_MAX 127 +#endif +#endif + +/* Error values */ +#define INT8_ERROR (-1) +#define UINT8_ERROR 0xff +#define BYTE_ERROR 0xff +#define SHORT_ERROR (-1) +#define INT16_ERROR (-1) +#define USHORT_ERROR 0xffff +#define UINT16_ERROR 0xffff +#define WORD_ERROR 0xffff +#define INT_ERROR (-1) +#define INT32_ERROR (-1) +#define UINT_ERROR 0xffffffff +#define UINT32_ERROR 0xffffffff +#define LONG_ERROR (-1L) +#define ULONG_ERROR 0xffffffffUL +#define DWORD_ERROR 0xffffffffUL +#define LONGLONG_ERROR (-1LL) +#define LONG64_ERROR (-1LL) +#define INT64_ERROR (-1LL) +#define ULONGLONG_ERROR 0xffffffffffffffffULL +#define DWORDLONG_ERROR 0xffffffffffffffffULL +#define ULONG64_ERROR 0xffffffffffffffffULL +#define UINT64_ERROR 0xffffffffffffffffULL +#ifdef _WIN64 +#define INT_PTR_ERROR (-1LL) +#define UINT_PTR_ERROR 0xffffffffffffffffULL +#define LONG_PTR_ERROR (-1LL) +#define ULONG_PTR_ERROR 0xffffffffffffffffULL +#define DWORD_PTR_ERROR 0xffffffffffffffffULL +#define PTRDIFF_T_ERROR (-1LL) +#define SIZE_T_ERROR 0xffffffffffffffffULL +#define SSIZE_T_ERROR (-1LL) +#define _SIZE_T_ERROR 0xffffffffffffffffULL +#else // _WIN64 +#define INT_PTR_ERROR (-1) +#define UINT_PTR_ERROR 0xffffffff +#define LONG_PTR_ERROR (-1L) +#define ULONG_PTR_ERROR 0xffffffffUL +#define DWORD_PTR_ERROR 0xffffffffUL +#define PTRDIFF_T_ERROR (-1) +#define SIZE_T_ERROR 0xffffffff +#define SSIZE_T_ERROR (-1L) +#define _SIZE_T_ERROR 0xffffffffUL +#endif // _WIN64 + +#define size_t_ERROR SIZE_T_ERROR +#define UCHAR_ERROR '\0' +#define CHAR_ERROR '\0' + + +#define DEFINE_SAFE_CONVERT_UTOX(_Name, _TypeFrom, _TypeTo) \ +_Must_inspect_result_ \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _TypeFrom Input, \ + _Out_ _Deref_out_range_(==, Input) _TypeTo *pOutput) \ +{ \ + if (Input <= _TypeTo ## _MAX) \ + { \ + *pOutput = (_TypeTo)Input; \ + return S_OK; \ + } \ + else \ + { \ + *pOutput = _TypeTo ## _ERROR; \ + return INTSAFE_E_ARITHMETIC_OVERFLOW; \ + } \ +} + +DEFINE_SAFE_CONVERT_UTOX(ByteToChar, BYTE, CHAR) +DEFINE_SAFE_CONVERT_UTOX(ByteToInt8, BYTE, INT8) +DEFINE_SAFE_CONVERT_UTOX(UInt8ToChar, UINT8, CHAR) +DEFINE_SAFE_CONVERT_UTOX(UInt8ToInt8, UINT8, INT8) +DEFINE_SAFE_CONVERT_UTOX(UShortToChar, USHORT, CHAR) +DEFINE_SAFE_CONVERT_UTOX(UShortToUChar, USHORT, UCHAR) +DEFINE_SAFE_CONVERT_UTOX(UShortToInt8, USHORT, INT8) +DEFINE_SAFE_CONVERT_UTOX(UShortToUInt8, USHORT, UINT8) +DEFINE_SAFE_CONVERT_UTOX(UShortToShort, USHORT, SHORT) +DEFINE_SAFE_CONVERT_UTOX(UIntToUChar, UINT, UCHAR) +DEFINE_SAFE_CONVERT_UTOX(UIntToInt8, UINT, INT8) +DEFINE_SAFE_CONVERT_UTOX(UIntToUInt8, UINT, UINT8) +DEFINE_SAFE_CONVERT_UTOX(UIntToShort, UINT, SHORT) +DEFINE_SAFE_CONVERT_UTOX(UIntToUShort, UINT, USHORT) +DEFINE_SAFE_CONVERT_UTOX(UIntToInt, UINT, INT) +DEFINE_SAFE_CONVERT_UTOX(UIntToLong, UINT, LONG) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToUChar, UINT_PTR, UCHAR) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToInt8, UINT_PTR, INT8) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToUInt8, UINT_PTR, UINT8) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToShort, UINT_PTR, SHORT) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToUShort, UINT_PTR, USHORT) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToInt16, UINT_PTR, INT16) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToUInt16, UINT_PTR, UINT16) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToInt, UINT_PTR, INT) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToLong, UINT_PTR, LONG) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToIntPtr, UINT_PTR, INT_PTR) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToLongPtr, UINT_PTR, LONG_PTR) + + +#define DEFINE_SAFE_CONVERT_ITOU(_Name, _TypeFrom, _TypeTo) \ +_Must_inspect_result_ \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _TypeFrom Input, \ + _Out_ _Deref_out_range_(==, Input) _TypeTo *pOutput) \ +{ \ + if ((Input >= 0) && (Input <= _TypeTo ## _MAX)) \ + { \ + *pOutput = (_TypeTo)Input; \ + return S_OK; \ + } \ + else \ + { \ + *pOutput = _TypeTo ## _ERROR; \ + return INTSAFE_E_ARITHMETIC_OVERFLOW; \ + } \ +} + +DEFINE_SAFE_CONVERT_ITOU(Int8ToUChar, INT8, UCHAR) +DEFINE_SAFE_CONVERT_ITOU(Int8ToUInt8, INT8, UINT8) +DEFINE_SAFE_CONVERT_ITOU(Int8ToUShort, INT8, USHORT) +DEFINE_SAFE_CONVERT_ITOU(Int8ToUInt, INT8, UINT) +DEFINE_SAFE_CONVERT_ITOU(Int8ToULong, INT8, ULONG) +DEFINE_SAFE_CONVERT_ITOU(Int8ToUIntPtr, INT8, UINT_PTR) +DEFINE_SAFE_CONVERT_ITOU(Int8ToULongPtr, INT8, ULONG_PTR) +DEFINE_SAFE_CONVERT_ITOU(Int8ToULongLong, INT8, ULONGLONG) +DEFINE_SAFE_CONVERT_ITOU(ShortToUChar, SHORT, UCHAR) +DEFINE_SAFE_CONVERT_ITOU(ShortToUInt8, SHORT, UINT8) +DEFINE_SAFE_CONVERT_ITOU(ShortToUShort, SHORT, USHORT) +DEFINE_SAFE_CONVERT_ITOU(ShortToUInt, SHORT, UINT) +DEFINE_SAFE_CONVERT_ITOU(ShortToULong, SHORT, ULONG) +DEFINE_SAFE_CONVERT_ITOU(ShortToUIntPtr, SHORT, UINT_PTR) +DEFINE_SAFE_CONVERT_ITOU(ShortToULongPtr, SHORT, ULONG_PTR) +DEFINE_SAFE_CONVERT_ITOU(ShortToDWordPtr, SHORT, DWORD_PTR) +DEFINE_SAFE_CONVERT_ITOU(ShortToULongLong, SHORT, ULONGLONG) +DEFINE_SAFE_CONVERT_ITOU(IntToUChar, INT, UCHAR) +DEFINE_SAFE_CONVERT_ITOU(IntToUInt8, INT, UINT8) +DEFINE_SAFE_CONVERT_ITOU(IntToUShort, INT, USHORT) +DEFINE_SAFE_CONVERT_ITOU(IntToUInt, INT, UINT) +DEFINE_SAFE_CONVERT_ITOU(IntToULong, INT, ULONG) +DEFINE_SAFE_CONVERT_ITOU(IntToULongLong, INT, ULONGLONG) +DEFINE_SAFE_CONVERT_ITOU(LongToUChar, LONG, UCHAR) +DEFINE_SAFE_CONVERT_ITOU(LongToUInt8, LONG, UINT8) +DEFINE_SAFE_CONVERT_ITOU(LongToUShort, LONG, USHORT) +DEFINE_SAFE_CONVERT_ITOU(LongToUInt, LONG, UINT) +DEFINE_SAFE_CONVERT_ITOU(LongToULong, LONG, ULONG) +DEFINE_SAFE_CONVERT_ITOU(LongToUIntPtr, LONG, UINT_PTR) +DEFINE_SAFE_CONVERT_ITOU(LongToULongPtr, LONG, ULONG_PTR) +DEFINE_SAFE_CONVERT_ITOU(LongToULongLong, LONG, ULONGLONG) +DEFINE_SAFE_CONVERT_ITOU(IntPtrToUChar, INT_PTR, UCHAR) +DEFINE_SAFE_CONVERT_ITOU(IntPtrToUInt8, INT_PTR, UINT8) +DEFINE_SAFE_CONVERT_ITOU(IntPtrToUShort, INT_PTR, USHORT) +DEFINE_SAFE_CONVERT_ITOU(IntPtrToUInt, INT_PTR, UINT) +DEFINE_SAFE_CONVERT_ITOU(IntPtrToULong, INT_PTR, ULONG) +DEFINE_SAFE_CONVERT_ITOU(IntPtrToUIntPtr, INT_PTR, UINT_PTR) +DEFINE_SAFE_CONVERT_ITOU(IntPtrToULongPtr, INT_PTR, ULONG_PTR) +DEFINE_SAFE_CONVERT_ITOU(IntPtrToULongLong, INT_PTR, ULONGLONG) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToUChar, LONG_PTR, UCHAR) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToUInt8, LONG_PTR, UINT8) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToUShort, LONG_PTR, USHORT) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToUInt, LONG_PTR, UINT) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToULong, LONG_PTR, ULONG) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToUIntPtr, LONG_PTR, UINT_PTR) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToULongPtr, LONG_PTR, ULONG_PTR) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToULongLong, LONG_PTR, ULONGLONG) +#ifdef _CHAR_UNSIGNED +DEFINE_SAFE_CONVERT_ITOU(ShortToChar, SHORT, UCHAR) +DEFINE_SAFE_CONVERT_ITOU(LongPtrToChar, LONG_PTR, UCHAR) +#endif + + +#define DEFINE_SAFE_CONVERT_ITOI(_Name, _TypeFrom, _TypeTo) \ +_Must_inspect_result_ \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _TypeFrom Input, \ + _Out_ _Deref_out_range_(==, Input) _TypeTo *pOutput) \ +{ \ + if ((Input >= _TypeTo ## _MIN) && (Input <= _TypeTo ## _MAX)) \ + { \ + *pOutput = (_TypeTo)Input; \ + return S_OK; \ + } \ + else \ + { \ + *pOutput = _TypeTo ## _ERROR; \ + return INTSAFE_E_ARITHMETIC_OVERFLOW; \ + } \ +} + +DEFINE_SAFE_CONVERT_ITOI(ShortToInt8, SHORT, INT8) +DEFINE_SAFE_CONVERT_ITOI(IntToInt8, INT, INT8) +DEFINE_SAFE_CONVERT_ITOI(IntToShort, INT, SHORT) +DEFINE_SAFE_CONVERT_ITOI(LongToInt8, LONG, INT8) +DEFINE_SAFE_CONVERT_ITOI(LongToShort, LONG, SHORT) +DEFINE_SAFE_CONVERT_ITOI(LongToInt, LONG, INT) +DEFINE_SAFE_CONVERT_ITOI(IntPtrToInt8, INT_PTR, INT8) +DEFINE_SAFE_CONVERT_ITOI(IntPtrToShort, INT_PTR, SHORT) +DEFINE_SAFE_CONVERT_ITOI(IntPtrToInt, INT_PTR, INT) +DEFINE_SAFE_CONVERT_ITOI(IntPtrToLong, INT_PTR, LONG) +DEFINE_SAFE_CONVERT_ITOI(IntPtrToLongPtr, INT_PTR, LONG_PTR) +DEFINE_SAFE_CONVERT_ITOI(LongPtrToInt8, LONG_PTR, INT8) +DEFINE_SAFE_CONVERT_ITOI(LongPtrToShort, LONG_PTR, SHORT) +DEFINE_SAFE_CONVERT_ITOI(LongPtrToInt, LONG_PTR, INT) +DEFINE_SAFE_CONVERT_ITOI(LongPtrToLong, LONG_PTR, LONG) +DEFINE_SAFE_CONVERT_ITOI(LongPtrToIntPtr, LONG_PTR, INT_PTR) +#ifndef _CHAR_UNSIGNED +DEFINE_SAFE_CONVERT_ITOI(ShortToChar, SHORT, CHAR) +DEFINE_SAFE_CONVERT_ITOI(LongPtrToChar, LONG_PTR, CHAR) +#endif + +#define DEFINE_SAFE_ADD(_Name, _Type) \ +_Must_inspect_result_ \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _Type Augend, \ + _In_ _Type Addend, \ + _Out_ _Deref_out_range_(==, Augend + Addend) _Type *pOutput) \ +{ \ + if ((Augend + Addend) >= Augend) \ + { \ + *pOutput = Augend + Addend; \ + return INTSAFE_SUCCESS; \ + } \ + else \ + { \ + *pOutput = _Type ## _ERROR; \ + return INTSAFE_E_ARITHMETIC_OVERFLOW; \ + } \ +} + +DEFINE_SAFE_ADD(UInt8Add, UINT8) +DEFINE_SAFE_ADD(UShortAdd, USHORT) +DEFINE_SAFE_ADD(UIntAdd, UINT) +DEFINE_SAFE_ADD(UlongAdd, ULONG) +DEFINE_SAFE_ADD(UIntPtrAdd, UINT_PTR) +DEFINE_SAFE_ADD(ULongPtrAdd, ULONG_PTR) +DEFINE_SAFE_ADD(DWordPtrAdd, DWORD_PTR) +DEFINE_SAFE_ADD(SizeTAdd, size_t) +DEFINE_SAFE_ADD(SIZETAdd, SIZE_T) +DEFINE_SAFE_ADD(ULongLongAdd, ULONGLONG) + + +#define DEFINE_SAFE_SUB(_Name, _Type) \ +_Must_inspect_result_ \ +__forceinline \ +INTSAFE_RESULT \ +INTSAFE_NAME(_Name)( \ + _In_ _Type Minuend, \ + _In_ _Type Subtrahend, \ + _Out_ _Deref_out_range_(==, Minuend - Subtrahend) _Type* pOutput) \ +{ \ + if (Minuend >= Subtrahend) \ + { \ + *pOutput = Minuend - Subtrahend; \ + return INTSAFE_SUCCESS; \ + } \ + else \ + { \ + *pOutput = _Type ## _ERROR; \ + return INTSAFE_E_ARITHMETIC_OVERFLOW; \ + } \ +} + +DEFINE_SAFE_SUB(UInt8Sub, UINT8) +DEFINE_SAFE_SUB(UShortSub, USHORT) +DEFINE_SAFE_SUB(UIntSub, UINT) +DEFINE_SAFE_SUB(UIntPtrSub, UINT_PTR) +DEFINE_SAFE_SUB(ULongSub, ULONG) +DEFINE_SAFE_SUB(ULongPtrSub, ULONG_PTR) +DEFINE_SAFE_SUB(DWordPtrSub, DWORD_PTR) +DEFINE_SAFE_SUB(SizeTSub, size_t) +DEFINE_SAFE_SUB(SIZETSub, SIZE_T) +DEFINE_SAFE_SUB(ULongLongSub, ULONGLONG) + + +#define Int8ToByte Int8ToUInt8 +#define Int8ToUInt16 Int8ToUShort +#define Int8ToWord Int8ToUShort +#define Int8ToUInt32 Int8ToUInt +#define Int8ToDWord Int8ToULong +#define Int8ToDWordPtr Int8ToULongPtr +#define Int8ToDWordLong Int8ToULongLong +#define Int8ToULong64 Int8ToULongLong +#define Int8ToDWord64 Int8ToULongLong +#define Int8ToUInt64 Int8ToULongLong +#define Int8ToSizeT Int8ToUIntPtr +#define Int8ToSIZET Int8ToULongPtr +#define UInt16Add UShortAdd +#define WordAdd UShortAdd +#define UInt32Add UIntAdd +#define DWordAdd ULongAdd +#define DWordLongAdd ULongLongAdd +#define ULong64Add ULongLongAdd +#define DWord64Add ULongLongAdd +#define UInt64Add ULongLongAdd +#define UInt16Sub UShortSub +#define WordSub UShortSub +#define UInt32Sub UIntSub +#define DWordSub ULongSub +#define DWordLongSub ULongLongSub +#define ULong64Sub ULongLongSub +#define DWord64Sub ULongLongSub +#define UInt64Sub ULongLongSub + + +#endif // !_INTSAFE_H_INCLUDED_ Propchange: trunk/reactos/include/psdk/intsafe.h ------------------------------------------------------------------------------ svn:eol-style = native
12 years, 6 months
1
0
0
0
← Newer
1
...
4
5
6
7
8
9
10
11
12
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
Results per page:
10
25
50
100
200