Stop e-mail me!
2 apr 2012 kl. 07.40 skrev Dmitry Timoshkov:
> ---
> dlls/gdi32/font.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
> index 230d421..f5c44d8 100644
> --- a/dlls/gdi32/font.c
> +++ b/dlls/gdi32/font.c
> @@ -3454,10 +3454,15 @@ static void *map_file( const WCHAR *filename, LARGE_INTEGER *size )
> file = CreateFileW( filename, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
> if (file == INVALID_HANDLE_VALUE) return NULL;
>
> - GetFileSizeEx( file, size );
> + if (!GetFileSizeEx( file, size ) || size->u.HighPart)
> + {
> + CloseHandle( file );
> + return NULL;
> + }
> +
> mapping = CreateFileMappingW( file, NULL, PAGE_READONLY, 0, 0, NULL );
> CloseHandle( file );
> - if (mapping == NULL) return NULL;
> + if (!mapping) return NULL;
>
> ptr = MapViewOfFile( mapping, FILE_MAP_READ, 0, 0, 0 );
> CloseHandle( mapping );
> @@ -3478,7 +3483,6 @@ static WCHAR *get_scalable_filename( const WCHAR *res )
>
> if (!ptr) return NULL;
>
> - if (size.u.HighPart) goto fail;
> if (size.u.LowPart < sizeof( *dos )) goto fail;
> dos = (const IMAGE_DOS_HEADER *)ptr;
> if (dos->e_magic != IMAGE_DOS_SIGNATURE) goto fail;
> --
> 1.7.9.4
>
>
>