Timo Kreuzer | 12 Apr 20:49 2015
Picon

Re: [ros-diffs] [cwittich] 67177: [SNDREC32] do not delete objects which are still selected into a DC


Just for the record: it's perfectly fine and safe to do that. They will 
be kept alive as long as they are selected and will be deleted, once a 
different object is selected or the DC is deleted.

Am 12.04.2015 um 18:29 schrieb cwittich@...:
> Author: cwittich
> Date: Sun Apr 12 16:29:36 2015
> New Revision: 67177
>
> URL: http://svn.reactos.org/svn/reactos?rev=67177&view=rev
> Log:
> [SNDREC32]
> do not delete objects which are still selected into a DC
>
> Modified:
>      trunk/reactos/base/applications/sndrec32/sndrec32.cpp
>
> Modified: trunk/reactos/base/applications/sndrec32/sndrec32.cpp
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndrec32/sndrec32.cpp?rev=67177&r1=67176&r2=67177&view=diff
> ==============================================================================
> --- trunk/reactos/base/applications/sndrec32/sndrec32.cpp	[iso-8859-1] (original)
> +++ trunk/reactos/base/applications/sndrec32/sndrec32.cpp	[iso-8859-1] Sun Apr 12 16:29:36 2015
>  <at>  <at>  -352,6 +352,7  <at>  <at> 
>       PAINTSTRUCT ps;
>       HDC hdc;
>       HPEN pen;
> +    HPEN oldpen;
>   
>       unsigned int max_h = (cli.bottom / 2);
(Continue reading)

Alex Ionescu | 12 Apr 01:11 2015
Picon

Re: [ros-diffs] [tkreuzer] 67140: [RTL] Improve RtlImageNtHeaderEx: - Fix signed/unsigned mismatch when comparing NT header offset - Simplify overflow checks - Add missing overflow-into-systemspace check CR-77 / C...

The Windows implementation of the API is different in user vs kernel-mode. We should probably try to remain compatible.

Best regards,
Alex Ionescu

On Fri, Apr 10, 2015 at 12:21 PM, <tkreuzer-FK+hrUIho1S2+TBAgxGDFw@public.gmane.org> wrote:
Author: tkreuzer
Date: Fri Apr 10 19:21:22 2015
New Revision: 67140

URL: http://svn.reactos.org/svn/reactos?rev=67140&view=rev
Log:
[RTL]
Improve RtlImageNtHeaderEx:
- Fix signed/unsigned mismatch when comparing NT header offset
- Simplify overflow checks
- Add missing overflow-into-systemspace check
CR-77 / CORE-8091 #resolve

Modified:
    trunk/reactos/boot/freeldr/freeldr/lib/rtl/libsupp.c
    trunk/reactos/dll/ntdll/rtl/libsupp.c
    trunk/reactos/include/ndk/amd64/mmtypes.h
    trunk/reactos/include/ndk/i386/mmtypes.h
    trunk/reactos/lib/rtl/image.c
    trunk/reactos/lib/rtl/rtlp.h
    trunk/reactos/ntoskrnl/include/internal/amd64/mm.h
    trunk/reactos/ntoskrnl/mm/ARM3/miarm.h

Modified: trunk/reactos/boot/freeldr/freeldr/lib/rtl/libsupp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/lib/rtl/libsupp.c?rev=67140&r1=67139&r2=67140&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/lib/rtl/libsupp.c        [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/lib/rtl/libsupp.c        [iso-8859-1] Fri Apr 10 19:21:22 2015
<at> <at> -19,6 +19,8 <at> <at>
  */

 #include <freeldr.h>
+
+PVOID MmHighestUserAddress = (PVOID)MI_HIGHEST_USER_ADDRESS;

 #if DBG
 VOID FASTCALL

Modified: trunk/reactos/dll/ntdll/rtl/libsupp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/rtl/libsupp.c?rev=67140&r1=67139&r2=67140&view=diff
==============================================================================
--- trunk/reactos/dll/ntdll/rtl/libsupp.c       [iso-8859-1] (original)
+++ trunk/reactos/dll/ntdll/rtl/libsupp.c       [iso-8859-1] Fri Apr 10 19:21:22 2015
<at> <at> -16,6 +16,7 <at> <at>

 SIZE_T RtlpAllocDeallocQueryBufferSize = PAGE_SIZE;
 PTEB LdrpTopLevelDllBeingLoadedTeb = NULL;
+PVOID MmHighestUserAddress = (PVOID)MI_HIGHEST_USER_ADDRESS;

 /* FUNCTIONS ***************************************************************/


Modified: trunk/reactos/include/ndk/amd64/mmtypes.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/amd64/mmtypes.h?rev=67140&r1=67139&r2=67140&view=diff
==============================================================================
--- trunk/reactos/include/ndk/amd64/mmtypes.h   [iso-8859-1] (original)
+++ trunk/reactos/include/ndk/amd64/mmtypes.h   [iso-8859-1] Fri Apr 10 19:21:22 2015
<at> <at> -36,6 +36,11 <at> <at>
 #define MM_ALLOCATION_GRANULARITY         0x10000
 #define MM_ALLOCATION_GRANULARITY_SHIFT   16L
 #define MM_PAGE_FRAME_NUMBER_SIZE         52
+
+//
+// User space range limit
+//
+#define MI_HIGHEST_USER_ADDRESS         (PVOID)0x000007FFFFFEFFFFULL

 //
 // Address of the shared user page

Modified: trunk/reactos/include/ndk/i386/mmtypes.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/i386/mmtypes.h?rev=67140&r1=67139&r2=67140&view=diff
==============================================================================
--- trunk/reactos/include/ndk/i386/mmtypes.h    [iso-8859-1] (original)
+++ trunk/reactos/include/ndk/i386/mmtypes.h    [iso-8859-1] Fri Apr 10 19:21:22 2015
<at> <at> -35,6 +35,11 <at> <at>
 #define MM_ALLOCATION_GRANULARITY         0x10000
 #define MM_ALLOCATION_GRANULARITY_SHIFT   16L
 #define MM_PAGE_FRAME_NUMBER_SIZE         20
+
+//
+// User space range limit
+//
+#define MI_HIGHEST_USER_ADDRESS                 (PVOID)0x7FFEFFFF

 //
 // Address of the shared user page

Modified: trunk/reactos/lib/rtl/image.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/image.c?rev=67140&r1=67139&r2=67140&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/image.c       [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/image.c       [iso-8859-1] Fri Apr 10 19:21:22 2015
<at> <at> -137,32 +137,42 <at> <at>
  */
 NTSTATUS
 NTAPI
-RtlImageNtHeaderEx(IN ULONG Flags,
-                   IN PVOID Base,
-                   IN ULONG64 Size,
-                   OUT PIMAGE_NT_HEADERS *OutHeaders)
+RtlImageNtHeaderEx(
+    _In_ ULONG Flags,
+    _In_ PVOID Base,
+    _In_ ULONG64 Size,
+    _Out_ PIMAGE_NT_HEADERS *OutHeaders)
 {
     PIMAGE_NT_HEADERS NtHeaders;
     PIMAGE_DOS_HEADER DosHeader;
     BOOLEAN WantsRangeCheck;
+    ULONG NtHeaderOffset;

     /* You must want NT Headers, no? */
-    if (!OutHeaders) return STATUS_INVALID_PARAMETER;
+    if (OutHeaders == NULL)
+    {
+        DPRINT1("OutHeaders is NULL\n");
+        return STATUS_INVALID_PARAMETER;
+    }

     /* Assume failure */
     *OutHeaders = NULL;

     /* Validate Flags */
-    if (Flags &~ RTL_IMAGE_NT_HEADER_EX_FLAG_NO_RANGE_CHECK)
-    {
-        DPRINT1("Invalid flag combination... check for new API flags?\n");
+    if (Flags & ~RTL_IMAGE_NT_HEADER_EX_FLAG_NO_RANGE_CHECK)
+    {
+        DPRINT1("Invalid flags: 0x%lx\n", Flags);
         return STATUS_INVALID_PARAMETER;
     }

     /* Validate base */
-    if (!(Base) || (Base == (PVOID)-1)) return STATUS_INVALID_PARAMETER;
-
-    /* Check if the caller wants validation */
+    if ((Base == NULL) || (Base == (PVOID)-1))
+    {
+        DPRINT1("Invalid base address: %p\n", Base);
+        return STATUS_INVALID_PARAMETER;
+    }
+
+    /* Check if the caller wants range checks */
     WantsRangeCheck = !(Flags & RTL_IMAGE_NT_HEADER_EX_FLAG_NO_RANGE_CHECK);
     if (WantsRangeCheck)
     {
<at> <at> -179,56 +189,56 <at> <at>
     if (DosHeader->e_magic != IMAGE_DOS_SIGNATURE)
     {
         /* Not a valid COFF */
-        DPRINT1("Not an MZ file\n");
+        DPRINT1("Invalid image DOS signature!\n");
+        return STATUS_INVALID_IMAGE_FORMAT;
+    }
+
+    /* Get the offset to the NT headers (and copy from LONG to ULONG) */
+    NtHeaderOffset = DosHeader->e_lfanew;
+
+    /* The offset must not be larger than 256MB, as a hard-coded check.
+       In Windows this check is only done in user mode, not in kernel mode,
+       but it shouldn't harm to have it anyway. Note that without this check,
+       other overflow checks would become necessary! */
+    if (NtHeaderOffset >= (256 * 1024 * 1024))
+    {
+        /* Fail */
+        DPRINT1("NT headers offset is larger than 256MB!\n");
         return STATUS_INVALID_IMAGE_FORMAT;
     }

     /* Check if the caller wants validation */
     if (WantsRangeCheck)
     {
-        /* The offset should fit in the passsed-in size */
-        if (DosHeader->e_lfanew >= Size)
+        /* Make sure the file header fits into the size */
+        if ((NtHeaderOffset +
+             RTL_SIZEOF_THROUGH_FIELD(IMAGE_NT_HEADERS, FileHeader)) >= Size)
         {
             /* Fail */
-            DPRINT1("e_lfanew is larger than PE file\n");
+            DPRINT1("NT headers beyond image size!\n");
             return STATUS_INVALID_IMAGE_FORMAT;
         }
-
-        /* It shouldn't be past 4GB either */
-        if (DosHeader->e_lfanew >=
-            (MAXULONG - sizeof(IMAGE_DOS_SIGNATURE) - sizeof(IMAGE_FILE_HEADER)))
-        {
-            /* Fail */
-            DPRINT1("e_lfanew is larger than 4GB\n");
+    }
+
+    /* Now get a pointer to the NT Headers */
+    NtHeaders = (PIMAGE_NT_HEADERS)((ULONG_PTR)Base + NtHeaderOffset);
+
+    /* Check if the mapping is in user space */
+    if (Base <= MmHighestUserAddress)
+    {
+        /* Make sure we don't overflow into kernel space */
+        if ((PVOID)(NtHeaders + 1) > MmHighestUserAddress)
+        {
+            DPRINT1("Image overflows from user space into kernel space!\n");
             return STATUS_INVALID_IMAGE_FORMAT;
         }
-
-        /* And the whole file shouldn't overflow past 4GB */
-        if ((DosHeader->e_lfanew +
-            sizeof(IMAGE_DOS_SIGNATURE) - sizeof(IMAGE_FILE_HEADER)) >= Size)
-        {
-            /* Fail */
-            DPRINT1("PE is larger than 4GB\n");
-            return STATUS_INVALID_IMAGE_FORMAT;
-        }
-    }
-
-    /* The offset also can't be larger than 256MB, as a hard-coded check */
-    if (DosHeader->e_lfanew >= (256 * 1024 * 1024))
-    {
-        /* Fail */
-        DPRINT1("PE offset is larger than 256MB\n");
-        return STATUS_INVALID_IMAGE_FORMAT;
-    }
-
-    /* Now it's safe to get the NT Headers */
-    NtHeaders = (PIMAGE_NT_HEADERS)((ULONG_PTR)Base + DosHeader->e_lfanew);
+    }

     /* Verify the PE Signature */
     if (NtHeaders->Signature != IMAGE_NT_SIGNATURE)
     {
         /* Fail */
-        DPRINT1("PE signature missing\n");
+        DPRINT1("Invalid image NT signature!\n");
         return STATUS_INVALID_IMAGE_FORMAT;
     }

<at> <at> -245,6 +255,10 <at> <at>
 RtlImageNtHeader(IN PVOID Base)
 {
     PIMAGE_NT_HEADERS NtHeader;
+
+    ULONG c = 1;
+    ULONG s = FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DataDirectory[c]);
+    (void)s;

     /* Call the new API */
     RtlImageNtHeaderEx(RTL_IMAGE_NT_HEADER_EX_FLAG_NO_RANGE_CHECK,

Modified: trunk/reactos/lib/rtl/rtlp.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/rtlp.h?rev=67140&r1=67139&r2=67140&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/rtlp.h        [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/rtlp.h        [iso-8859-1] Fri Apr 10 19:21:22 2015
<at> <at> -34,6 +34,8 <at> <at>

 #define RVA(m, b) ((PVOID)((ULONG_PTR)(b) + (ULONG_PTR)(m)))

+extern PVOID MmHighestUserAddress;
+
 NTSTATUS
 NTAPI
 RtlpSafeCopyMemory(

Modified: trunk/reactos/ntoskrnl/include/internal/amd64/mm.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/amd64/mm.h?rev=67140&r1=67139&r2=67140&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/amd64/mm.h  [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/amd64/mm.h  [iso-8859-1] Fri Apr 10 19:21:22 2015
<at> <at> -5,7 +5,6 <at> <at>

 /* Memory layout base addresses */
 #define MI_LOWEST_VAD_ADDRESS           (PVOID)0x000000007FF00000ULL
-#define MI_HIGHEST_USER_ADDRESS         (PVOID)0x000007FFFFFEFFFFULL
 #define MI_USER_PROBE_ADDRESS           (PVOID)0x000007FFFFFF0000ULL
 #define MI_DEFAULT_SYSTEM_RANGE_START   (PVOID)0xFFFF080000000000ULL
 #define MI_REAL_SYSTEM_RANGE_START             0xFFFF800000000000ULL

Modified: trunk/reactos/ntoskrnl/mm/ARM3/miarm.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/miarm.h?rev=67140&r1=67139&r2=67140&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/ARM3/miarm.h      [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/ARM3/miarm.h      [iso-8859-1] Fri Apr 10 19:21:22 2015
<at> <at> -29,7 +29,6 <at> <at>

 #define MI_SYSTEM_VIEW_SIZE                     (32 * _1MB)

-#define MI_HIGHEST_USER_ADDRESS                 (PVOID)0x7FFEFFFF
 #define MI_USER_PROBE_ADDRESS                   (PVOID)0x7FFF0000
 #define MI_DEFAULT_SYSTEM_RANGE_START           (PVOID)0x80000000
 #define MI_SYSTEM_CACHE_WS_START                (PVOID)0xC0C00000



_______________________________________________
Ros-dev mailing list
Ros-dev@...
http://www.reactos.org/mailman/listinfo/ros-dev
Timo Kreuzer | 5 Apr 10:00 2015
Picon

Re: [ros-diffs] [spetreolle] 67053: [FREELDR] In a quest to better registry, don't break VSSolution builds. freeldr_pe is not in the same directory and copy doesn't care if you ask to concatenate C:\tomatoes, it a...


The comment "# Retrieve the full path to the generated file of the 
'freeldr_pe' target" Doesn't explain why it is done.
It rather looks like someone is doing something pointless and 
documenting in a comment that he's doing the pointless.

${CMAKE_CURRENT_BINARY_DIR} should be the "full path to the generated file". So it seems completely
pointless to add extra magic to get that file path. Your commit message implies that this change fixes
VSSolution builds, but it also doesn't explain it. In fact I don't even understand that sentence.

If you don't add a proper comment to that thing, why it is needed, I 
promise I will have forgotten about this in a year and remove it again. :)

Thanks,
Timo

Am 04.04.2015 um 22:33 schrieb spetreolle@...:
> Author: spetreolle
> Date: Sat Apr  4 20:33:18 2015
> New Revision: 67053
>
> URL: http://svn.reactos.org/svn/reactos?rev=67053&view=rev
> Log:
> [FREELDR]
> In a quest to better registry,
> don't break VSSolution builds.
> freeldr_pe is not in the same directory and copy doesn't care if you ask to concatenate C:\tomatoes, it
already has the first file.
>
> Modified:
>      trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt
>
> Modified: trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt?rev=67053&r1=67052&r2=67053&view=diff
> ==============================================================================
> --- trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt	[iso-8859-1] (original)
> +++ trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt	[iso-8859-1] Sat Apr  4 20:33:18 2015
>  <at>  <at>  -226,10 +226,13  <at>  <at> 
>   add_dependencies(freeldr_pe asm)
>   add_dependencies(freeldr_pe_dbg asm)
>   
> +# Retrieve the full path to the generated file of the 'freeldr_pe' target
> +get_target_property(_freeldr_pe_output_file freeldr_pe LOCATION)
> +
>   concatenate_files(
>       ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys
>       ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
> -    ${CMAKE_CURRENT_BINARY_DIR}/freeldr_pe.dll)
> +    ${_freeldr_pe_output_file})
>   
>   add_custom_target(freeldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys)
>   
>  <at>  <at>  -240,7 +243,8  <at>  <at> 
>   concatenate_files(
>       ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys
>       ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
> -    ${CMAKE_CURRENT_BINARY_DIR}/freeldr_pe.dll)
> +    ${_freeldr_pe_output_file})
>   
>   add_custom_target(setupldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
>   add_cd_file(TARGET setupldr FILE ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys DESTINATION loader
NO_CAB FOR bootcd regtest)
> +
>
>
>

Attachment (smime.p7s): application/pkcs7-signature, 4980 bytes
_______________________________________________
Ros-dev mailing list
Ros-dev@...
http://www.reactos.org/mailman/listinfo/ros-dev
stack exchange | 1 Apr 09:12 2015
Picon
Picon

Setup on an extended partition

Hi

I'm new to ReactOS development and started to look into some issues I 
noticed with the setup. When I tried to install it I experimented a bit 
and noticed that you can create extended partitions during the setup. 
The setup also accepts such a partition for installation, but the actual 
installations fails with an error.
Now I wondered, what would be the correct way to fix it. I checked with 
Windows 7 installation, and it apparently doesn't allow you to install 
on an extended partition either, at least it only allows you to create 
primary partitions. So if this shouldn't be possible, then I would add 
an error message to the setup, when the user chooses an extended partition.
If this should be possible though, I would look into it, why it fails 
and try to fix it. Not sure if XP or others allow installations on 
extended partitions, I have to check this (been a long time since I last 
installed an XP :) ).

regards,
Gerhard Gruber
Thomas Faber | 31 Mar 21:11 2015

Re: [ros-diffs] [tkreuzer] 65893: [GDI32] Import metafile code from wine. The wine code is unmodified (please keep it that way) and used through a wrapper function dispatcher and some helpers. Fixes 1931 wine tests.

Hey Timo,

I was just about to sync enhmetafile.c with Wine and found that your
original import had the following diff:
--- win32ss/gdi/gdi32/wine/enhmetafile.c	(revision 67001)
+++ win32ss/gdi/gdi32/wine/enhmetafile.c	(working copy)
 <at>  <at>  -546,8 +546,6  <at>  <at> 

     if (!SetWorldTransform(hdc, &final_trans))
     {
-        __debugbreak();
-        SetWorldTransform(hdc, &final_trans);
         ERR("World transform failed!\n");
     }
 }
 <at>  <at>  -1232,12 +1230,10  <at>  <at> 
     case EMR_EXTSELECTCLIPRGN:
       {
 	const EMREXTSELECTCLIPRGN *lpRgn = (const EMREXTSELECTCLIPRGN *)mr;
-	const RGNDATA *pRgnData = (const RGNDATA *)lpRgn->RgnData;
-	DWORD dwSize = sizeof(RGNDATAHEADER) + pRgnData->rdh.nCount * sizeof(RECT);
 	HRGN hRgn = 0;

         if (mr->nSize >= sizeof(*lpRgn) + sizeof(RGNDATAHEADER))
-            hRgn = ExtCreateRegion( &info->init_transform, dwSize, pRgnData );
+            hRgn = ExtCreateRegion( &info->init_transform, 0, (const RGNDATA *)lpRgn->RgnData );

 	ExtSelectClipRgn(hdc, hRgn, (INT)(lpRgn->iMode));
 	/* ExtSelectClipRgn created a copy of the region */

(this is the reverse diff, i.e. the one that would get it back in sync
 with Wine)

My guess is I should just remove this difference and get it completely
synced (i.e. apply the above patch)? What do you think?

On 2014-12-29 15:25, tkreuzer@... wrote:
> Author: tkreuzer
> Date: Mon Dec 29 14:25:30 2014
> New Revision: 65893
> 
> URL: http://svn.reactos.org/svn/reactos?rev=65893&view=rev
> Log:
> [GDI32]
> Import metafile code from wine. The wine code is unmodified (please keep it that way) and used through a
wrapper function dispatcher and some helpers. Fixes 1931 wine tests.
> 
> Added:
>     trunk/reactos/win32ss/gdi/gdi32/include/wine/   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/include/wine/gdi_driver.h   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/CMakeLists.txt   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/enhmetafile.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/bitblt.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/dc.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/enhmetafiledrv.h   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/graphics.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/init.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/objects.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/gdi_private.h   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/metafile.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/bitblt.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/dc.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/graphics.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/init.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/metafiledrv.h   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/objects.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/text.c   (with props)
>     trunk/reactos/win32ss/gdi/gdi32/wine/rosglue.c   (with props)
> Modified:
>     trunk/reactos/win32ss/gdi/gdi32/CMakeLists.txt
>     trunk/reactos/win32ss/gdi/gdi32/include/gdi32p.h
>     trunk/reactos/win32ss/gdi/gdi32/misc/misc.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/arc.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/bitmap.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/coord.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/dc.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/enhmfile.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/gdiobj.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/metafile.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/painting.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/palette.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/path.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/region.c
>     trunk/reactos/win32ss/gdi/gdi32/objects/text.c
>     trunk/reactos/win32ss/include/ntgdihdl.h
> 
> [This mail would be too long, it was shortened to contain the URLs only.]
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/CMakeLists.txt
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/CMakeLists.txt?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/include/gdi32p.h
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/include/gdi32p.h?rev=65893&r1=65892&r2=65893&view=diff
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/include/wine/gdi_driver.h
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/include/wine/gdi_driver.h?rev=65893
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/misc/misc.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/misc/misc.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/arc.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/arc.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/bitmap.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/bitmap.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/coord.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/coord.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/dc.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/dc.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/enhmfile.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/enhmfile.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/gdiobj.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/gdiobj.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/metafile.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/metafile.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/painting.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/painting.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/palette.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/palette.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/path.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/path.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/region.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/region.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Modified: trunk/reactos/win32ss/gdi/gdi32/objects/text.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/text.c?rev=65893&r1=65892&r2=65893&view=diff
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/CMakeLists.txt
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/CMakeLists.txt?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/enhmetafile.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/enhmetafile.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/bitblt.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/bitblt.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/dc.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/dc.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/enhmetafiledrv.h
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/enhmetafiledrv.h?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/graphics.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/graphics.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/init.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/init.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/objects.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/enhmfdrv/objects.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/gdi_private.h
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/gdi_private.h?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/metafile.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/metafile.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/bitblt.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/bitblt.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/dc.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/dc.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/graphics.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/graphics.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/init.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/init.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/metafiledrv.h
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/metafiledrv.h?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/objects.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/objects.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/text.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/mfdrv/text.c?rev=65893
> 
> Added: trunk/reactos/win32ss/gdi/gdi32/wine/rosglue.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/rosglue.c?rev=65893
> 
> Modified: trunk/reactos/win32ss/include/ntgdihdl.h
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/include/ntgdihdl.h?rev=65893&r1=65892&r2=65893&view=diff
Pierre Schweitzer | 31 Mar 08:59 2015

Re: [ros-diffs] [gadamopoulos] 66988: [EXPLORER] - Fix showing the website when Help is selected from the start menu.

Just a side (minor) remark.

On 31/03/2015 00:28, gadamopoulos@... wrote:
> Modified: trunk/reactos/base/shell/explorer/explorer.rc
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/explorer.rc?rev=66988&r1=66987&r2=66988&view=diff
> ==============================================================================
> --- trunk/reactos/base/shell/explorer/explorer.rc	[iso-8859-1] (original)
> +++ trunk/reactos/base/shell/explorer/explorer.rc	[iso-8859-1] Mon Mar 30 22:28:08 2015
>  <at>  <at>  -28,7 +28,7  <at>  <at> 
>  STRINGTABLE
>  BEGIN
>      //IDS_HELP_COMMAND "helpctr.exe>-FromStartHelp"
> -    IDS_HELP_COMMAND "https://www.reactos.org/"
> +    IDS_HELP_COMMAND "http://www.reactos.org/"

This is to be reverted once ReactOS fully supports SSL.

--

-- 
Pierre Schweitzer <pierre at reactos.org>
System & Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.

Attachment (smime.p7s): application/pkcs7-signature, 5328 bytes
_______________________________________________
Ros-dev mailing list
Ros-dev@...
http://www.reactos.org/mailman/listinfo/ros-dev
Thomas Faber | 31 Mar 07:33 2015

Re: [ros-diffs] [gadamopoulos] 66992: [BROWSEUI] - CProgressDialog: Allocate big enough buffers needed for the text messages during initialization and don't reallocate them at all. Should stop thrashing the heap w...

On 2015-03-31 00:50, gadamopoulos@... wrote:
> --- trunk/reactos/dll/win32/browseui/CProgressDialog.cpp	[iso-8859-1] (original)
> +++ trunk/reactos/dll/win32/browseui/CProgressDialog.cpp	[iso-8859-1] Mon Mar 30 22:50:34 2015
>  CProgressDialog::CProgressDialog()
>  {

> +    this->cancelMsg[0] = this->title[0];

Did you mean this->cancelMsg[0] = this->title[0] = 0;?
(or UNICODE_NULL for that matter)

>  static void set_buffer(LPWSTR *buffer, LPCWSTR string)
>  {

> +
> +    ULONG len = max((wcslen(string) + 1)*sizeof(WCHAR), BUFFER_SIZE);
>      StringCchCopyW(*buffer, len, string);

This makes no sense. I think you simply want
StringCchCopyW(*buffer, len, BUFFER_SIZE);

Thanks!
-Thomas
Thomas Faber | 29 Mar 07:15 2015

Re: [ros-diffs] [hbelusca] 66946: [CMAKE] Improve the concatenate_files macro introduced by Timo in r52179 + r52182 and hackfixed in r53914 . Notice that now it can take an arbitrary number of files to be concaten...

I don't see how creating a new host-tool is an improvement over using OS
builtins?

On 2015-03-29 03:53, hbelusca@... wrote:
> Author: hbelusca
> Date: Sun Mar 29 01:53:10 2015
> New Revision: 66946
> 
> URL: http://svn.reactos.org/svn/reactos?rev=66946&view=rev
> Log:
> [CMAKE]
> Improve the concatenate_files macro introduced by Timo in r52179 + r52182 and hackfixed in r53914 .
Notice that now it can take an arbitrary number of files to be concatenated. Hence you need to specify first
the output file, and all the rest is the different files.
> 
> [FREELDR]
> Use the improved concatenate_files macro.
> 
> Modified:
>     trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt
>     trunk/reactos/cmake/CMakeMacros.cmake
> 
> Modified: trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt?rev=66946&r1=66945&r2=66946&view=diff
> ==============================================================================
> --- trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt	[iso-8859-1] (original)
> +++ trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt	[iso-8859-1] Sun Mar 29 01:53:10 2015
>  <at>  <at>  -226,10 +226,13  <at>  <at> 
>  add_dependencies(freeldr_pe asm)
>  add_dependencies(freeldr_pe_dbg asm)
>  
> +# Retrieve the full path to the generated file of the 'freeldr_pe' target
> +get_target_property(_freeldr_pe_output_file freeldr_pe LOCATION)
> +
>  concatenate_files(
> +    ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys
>      ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
> -    freeldr_pe
> -    ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys)
> +    ${_freeldr_pe_output_file})
>  
>  add_custom_target(freeldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys)
>  
>  <at>  <at>  -238,9 +241,9  <at>  <at> 
>  add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys DESTINATION loader
NO_CAB NOT_IN_HYBRIDCD FOR livecd hybridcd NAME_ON_CD setupldr.sys)
>  
>  concatenate_files(
> +    ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys
>      ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
> -    freeldr_pe
> -    ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
> +    ${_freeldr_pe_output_file})
>  
>  add_custom_target(setupldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
>  add_cd_file(TARGET setupldr FILE ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys DESTINATION loader
NO_CAB FOR bootcd regtest)
> 
> Modified: trunk/reactos/cmake/CMakeMacros.cmake
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/CMakeMacros.cmake?rev=66946&r1=66945&r2=66946&view=diff
> ==============================================================================
> --- trunk/reactos/cmake/CMakeMacros.cmake	[iso-8859-1] (original)
> +++ trunk/reactos/cmake/CMakeMacros.cmake	[iso-8859-1] Sun Mar 29 01:53:10 2015
>  <at>  <at>  -504,33 +504,12  <at>  <at> 
>      endfunction()
>  endif()
>  
> -if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
> -    macro(to_win_path _cmake_path _native_path)
> -        string(REPLACE "/" "\\" ${_native_path} "${_cmake_path}")
> -    endmacro()
> -
> -    # yeah the parameter mess sucks, but thats what works...
> -    function(concatenate_files _file1 _target2 _output)
> -        get_target_property(_file2 ${_target2} LOCATION)
> -        to_win_path("${_file1}" _real_file1)
> -        to_win_path("${_file2}" _real_file2)
> -        to_win_path("${_output}" _real_output)
> -        add_custom_command(
> -            OUTPUT ${_output}
> -            COMMAND cmd.exe /C "copy /Y /B ${_real_file1} + ${_real_file2} ${_real_output} > nul"
> -            DEPENDS ${_file1}
> -            DEPENDS ${_target2})
> -    endfunction()
> -else()
> -    macro(concatenate_files _file1 _target2 _output)
> -        get_target_property(_file2 ${_target2} LOCATION)
> -        add_custom_command(
> -            OUTPUT ${_output}
> -            COMMAND cat ${_file1} ${_file2} > ${_output}
> -            DEPENDS ${_file1}
> -            DEPENDS ${_target2})
> -    endmacro()
> -endif()
> +macro(concatenate_files _output)
> +    add_custom_command(
> +        OUTPUT ${_output}
> +        COMMAND native-cat ${ARGN} > ${_output}
> +        DEPENDS ${ARGN} native-cat)
> +endmacro()
>  
>  function(add_importlibs _module)
>      add_dependency_node(${_module})
> 
> 
Pierre Schweitzer | 26 Mar 16:21 2015

Re: [ros-diffs] [hbelusca] 66903: [NTVDM] - Fix some english. - Validity checks for DosGetSftEntry returned pointer added. - Use unsigned indices for for-loops indices that are always positive.

On 03/26/2015 03:52 PM, hbelusca@... wrote:
> Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c?rev=66903&r1=66902&r2=66903&view=diff
> ==============================================================================
> --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c	[iso-8859-1] (original)
> +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c	[iso-8859-1] Thu Mar 26 14:52:16 2015
>  <at>  <at>  -56,6 +56,13  <at>  <at> 
>  BOOLEAN DosCheckInput(VOID)
>  {
>      PDOS_SFT_ENTRY SftEntry = DosGetSftEntry(DOS_INPUT_HANDLE);
> +
> +    if (SftEntry == NULL)
> +    {
> +        /* Invalid handle */
> +        DosLastError = ERROR_INVALID_HANDLE; // ERROR_FILE_NOT_FOUND

Hum... Why?

Is the error code wrong and should be ERROR_FILE_NOT_FOUND? And then,
why setting this other error code?
Or is the error code right, and then, what's the purpose of such comment?
Or do you have a doubt about the right error code to use? Be it one or
the other?

I come back to my eternal comment: don't comment for yourself. Comment
for the others, you're not alone here. So, make it explicit.

Cheers,
--

-- 
Pierre Schweitzer <pierre@...>
System & Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.

Attachment (smime.p7s): application/pkcs7-signature, 5783 bytes
_______________________________________________
Ros-dev mailing list
Ros-dev@...
http://www.reactos.org/mailman/listinfo/ros-dev
Huw Campbell | 26 Mar 12:33 2015
Picon

Win2k3 end of life

Hey,

Win2k3 is end of support in 6 months, which will mean that the symbol
server will go down (as it has done for XP).

At the very least, we should scrape the symbol server so we can
continue to check and debug.

Or move to NT6...
Aleksey Bragin | 26 Mar 11:36 2015

Status Meeting (March 2015)

Hello,
Let me invite you to the monthly status meeting taking place today 26th 
of March, 19:00 UTC, as always.

IRC service will only be started shortly before the meeting. Your 
participation passwords and server address will be emailed to you 
shortly before the meeting starts, and they are going to be different 
once again as they are not stored in any database. Hopefully it's not 
much of inconvenience.

If someone still is not getting passwords sent before a meeting - please 
email Pierre before the meeting started to get one.

Please send agenda proposals to me before the meeting, so that we can 
start with a proposed agenda.

And join Mumble!

Regards,
Aleksey Bragin

Gmane