mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 9eaa37249948c4d77df37cf3649ad1db59412fcb.
[amstream-GetMultiMediaStream] Removed patch to implement AMStream GetMultiMediaStream functions (accepted upstream). [mscoree-Buffer_Overflow] Removed patch to avoid buffer overflow in mono print handler for large strings (accepted upstream). [ntdll-Fix_Free] Removed patch to fix a handle leak in RemoveDirectoryW (accepted upstream). [ntdll-FreeBSD_Directory] Removed patch to use POSIX implementation to enumerate directory content on FreeBSD (fixed upstream).
This commit is contained in:
parent
8e5acbdae3
commit
96068c4fe2
@ -1,88 +0,0 @@
|
||||
From 4d0e6bbc00bd49b8dcfce494bd7380c49f58f92b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 28 Jul 2015 18:21:20 +0200
|
||||
Subject: amstream: Implement IAMMediaStream::GetMultiMediaStream.
|
||||
|
||||
---
|
||||
dlls/amstream/mediastream.c | 40 ++++++++++++++++++++++++++++++++--------
|
||||
1 file changed, 32 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c
|
||||
index 947be1e..e4e15d7 100644
|
||||
--- a/dlls/amstream/mediastream.c
|
||||
+++ b/dlls/amstream/mediastream.c
|
||||
@@ -110,9 +110,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetMultiMediaStre
|
||||
{
|
||||
DirectDrawMediaStreamImpl *This = impl_from_DirectDrawMediaStream_IAMMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multi_media_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multi_media_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
||||
@@ -271,9 +277,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetMultiM
|
||||
{
|
||||
DirectDrawMediaStreamImpl *This = impl_from_IDirectDrawMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream);
|
||||
+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!ppMultiMediaStream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *ppMultiMediaStream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetInformation(IDirectDrawMediaStream *iface,
|
||||
@@ -511,9 +523,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetMultiMediaStream(IA
|
||||
{
|
||||
AudioMediaStreamImpl *This = impl_from_AudioMediaStream_IAMMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
+ TRACE("(%p/%p)->(%p)\n", This, iface, multi_media_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multi_media_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multi_media_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
||||
@@ -672,9 +690,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetMultiMediaStream
|
||||
{
|
||||
AudioMediaStreamImpl *This = impl_from_IAudioMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", iface, This, multimedia_stream);
|
||||
+ TRACE("(%p/%p)->(%p)\n", iface, This, multimedia_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multimedia_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multimedia_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetInformation(IAudioMediaStream *iface,
|
||||
--
|
||||
2.4.5
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [37090] Implement AMStream GetMultiMediaStream functions
|
@ -1,4 +1,4 @@
|
||||
From 66ea1296b0b3493271a7611bfa56b0d74b34b16c Mon Sep 17 00:00:00 2001
|
||||
From 4283d60c4b362e518c7028484b44d9df2ecd27cc Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Fri, 19 Dec 2014 22:31:46 +0100
|
||||
Subject: d3dx9_36: Implement ID3DXEffect_FindNextValidTechnique + add tests.
|
||||
@ -9,10 +9,10 @@ Subject: d3dx9_36: Implement ID3DXEffect_FindNextValidTechnique + add tests.
|
||||
2 files changed, 91 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
|
||||
index a210bb3..2fbc1cb 100644
|
||||
index da7de54..809f11e 100644
|
||||
--- a/dlls/d3dx9_36/effect.c
|
||||
+++ b/dlls/d3dx9_36/effect.c
|
||||
@@ -3483,13 +3483,41 @@ static HRESULT WINAPI ID3DXEffectImpl_ValidateTechnique(ID3DXEffect* iface, D3DX
|
||||
@@ -3542,13 +3542,41 @@ static HRESULT WINAPI ID3DXEffectImpl_ValidateTechnique(ID3DXEffect* iface, D3DX
|
||||
return D3D_OK;
|
||||
}
|
||||
|
||||
@ -58,11 +58,11 @@ index a210bb3..2fbc1cb 100644
|
||||
|
||||
static BOOL WINAPI ID3DXEffectImpl_IsParameterUsed(ID3DXEffect* iface, D3DXHANDLE parameter, D3DXHANDLE technique)
|
||||
diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c
|
||||
index c388e7d..8653e0e 100644
|
||||
index 4ef4d4c..59cd6cc 100644
|
||||
--- a/dlls/d3dx9_36/tests/effect.c
|
||||
+++ b/dlls/d3dx9_36/tests/effect.c
|
||||
@@ -3886,6 +3886,65 @@ static void test_effect_preshader(IDirect3DDevice9 *device)
|
||||
effect->lpVtbl->Release(effect);
|
||||
@@ -3983,6 +3983,65 @@ static void test_effect_preshader_ops(IDirect3DDevice9 *device)
|
||||
&op_tests[i]);
|
||||
}
|
||||
|
||||
+/*
|
||||
@ -127,14 +127,14 @@ index c388e7d..8653e0e 100644
|
||||
START_TEST(effect)
|
||||
{
|
||||
HWND wnd;
|
||||
@@ -3927,6 +3986,7 @@ START_TEST(effect)
|
||||
test_effect_compilation_errors(device);
|
||||
@@ -4025,6 +4084,7 @@ START_TEST(effect)
|
||||
test_effect_states(device);
|
||||
test_effect_preshader(device);
|
||||
test_effect_preshader_ops(device);
|
||||
+ test_effect_technique_validation(device);
|
||||
|
||||
count = IDirect3DDevice9_Release(device);
|
||||
ok(count == 0, "The device was not properly freed: refcount %u\n", count);
|
||||
--
|
||||
2.7.1
|
||||
2.8.0
|
||||
|
||||
|
@ -1,33 +0,0 @@
|
||||
From 11da1a0af07594aebccad786e536a05a74888d04 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 29 Apr 2016 17:55:43 +0200
|
||||
Subject: mscoree: Avoid buffer overflow when mono print handler returns huge
|
||||
string at once.
|
||||
|
||||
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
|
||||
---
|
||||
dlls/mscoree/metahost.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/mscoree/metahost.c b/dlls/mscoree/metahost.c
|
||||
index 252740d..30b9739 100644
|
||||
--- a/dlls/mscoree/metahost.c
|
||||
+++ b/dlls/mscoree/metahost.c
|
||||
@@ -272,7 +272,13 @@ static void CDECL mono_shutdown_callback_fn(MonoProfiler *prof)
|
||||
|
||||
static void CDECL mono_print_handler_fn(const char *string, INT is_stdout)
|
||||
{
|
||||
- wine_dbg_printf("%s", string);
|
||||
+ const char *p;
|
||||
+ for (; *string; string = p)
|
||||
+ {
|
||||
+ if ((p = strstr(string, "\n"))) p++;
|
||||
+ else p = string + strlen(string);
|
||||
+ wine_dbg_printf("%.*s", (int)(p - string), string);
|
||||
+ }
|
||||
}
|
||||
|
||||
static HRESULT CLRRuntimeInfo_GetRuntimeHost(CLRRuntimeInfo *This, RuntimeHost **result)
|
||||
--
|
||||
2.8.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Avoid buffer overflow in mono print handler for large strings
|
@ -1,20 +1,20 @@
|
||||
From 119ed83d6517c6a92ff8d30f671ab4c02ebb700c Mon Sep 17 00:00:00 2001
|
||||
From 547a16f5cfaae95ca1bc3e18833132ae89b8e88e Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Wed, 20 Aug 2014 15:28:00 -0600
|
||||
Subject: ntdll: Implement storing DOS attributes in NtCreateFile.
|
||||
|
||||
---
|
||||
dlls/ntdll/file.c | 76 ++++++++++++++++++++++++++++----------------
|
||||
dlls/ntdll/tests/directory.c | 20 ++++++------
|
||||
dlls/ntdll/tests/directory.c | 24 +++++++-------
|
||||
include/wine/port.h | 2 ++
|
||||
libs/port/xattr.c | 20 ++++++++++++
|
||||
4 files changed, 80 insertions(+), 38 deletions(-)
|
||||
4 files changed, 82 insertions(+), 40 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index bcedc42..9b54854 100644
|
||||
index 37446a9..0b33acd 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -219,6 +219,21 @@ int get_file_info( const char *path, struct stat *st, ULONG *attr )
|
||||
@@ -224,6 +224,21 @@ int get_file_info( const char *path, struct stat *st, ULONG *attr )
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ index bcedc42..9b54854 100644
|
||||
/**************************************************************************
|
||||
* FILE_CreateFile (internal)
|
||||
* Open a file.
|
||||
@@ -230,6 +245,10 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -235,6 +250,10 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
ULONG attributes, ULONG sharing, ULONG disposition,
|
||||
ULONG options, PVOID ea_buffer, ULONG ea_length )
|
||||
{
|
||||
@ -47,7 +47,7 @@ index bcedc42..9b54854 100644
|
||||
ANSI_STRING unix_name;
|
||||
BOOL created = FALSE;
|
||||
|
||||
@@ -273,37 +292,34 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -278,37 +297,34 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
io->u.Status = STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ index bcedc42..9b54854 100644
|
||||
|
||||
if (io->u.Status == STATUS_SUCCESS)
|
||||
{
|
||||
@@ -325,6 +341,11 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -330,6 +346,11 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
io->Information = FILE_OVERWRITTEN;
|
||||
break;
|
||||
}
|
||||
@ -121,7 +121,7 @@ index bcedc42..9b54854 100644
|
||||
}
|
||||
else if (io->u.Status == STATUS_TOO_MANY_OPENED_FILES)
|
||||
{
|
||||
@@ -332,6 +353,7 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -337,6 +358,7 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
if (!once++) ERR_(winediag)( "Too many open files, ulimit -n probably needs to be increased\n" );
|
||||
}
|
||||
|
||||
@ -130,47 +130,51 @@ index bcedc42..9b54854 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/ntdll/tests/directory.c b/dlls/ntdll/tests/directory.c
|
||||
index f93c623..aa8e97f 100644
|
||||
index 431471a..e579573 100644
|
||||
--- a/dlls/ntdll/tests/directory.c
|
||||
+++ b/dlls/ntdll/tests/directory.c
|
||||
@@ -51,7 +51,6 @@ static NTSTATUS (WINAPI *pRtlWow64EnableFsRedirectionEx)( ULONG disable, ULONG *
|
||||
@@ -55,7 +55,6 @@ static NTSTATUS (WINAPI *pRtlWow64EnableFsRedirectionEx)( ULONG disable, ULONG *
|
||||
|
||||
/* The attribute sets to test */
|
||||
static struct testfile_s {
|
||||
- BOOL todo; /* set if it doesn't work on wine yet */
|
||||
BOOL attr_done; /* set if attributes were tested for this file already */
|
||||
const DWORD attr; /* desired attribute */
|
||||
const char *name; /* filename to use */
|
||||
@@ -60,14 +59,14 @@ static struct testfile_s {
|
||||
WCHAR name[20]; /* filename to use */
|
||||
@@ -63,16 +62,16 @@ static struct testfile_s {
|
||||
const char *description; /* for error messages */
|
||||
int nfound; /* How many were found (expect 1) */
|
||||
WCHAR nameW[20]; /* unicode version of name (filled in later) */
|
||||
} testfiles[] = {
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, "longfilename.tmp", NULL, "normal" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, "n.tmp", NULL, "normal" },
|
||||
- { 1, 0, FILE_ATTRIBUTE_HIDDEN, "h.tmp", NULL, "hidden" },
|
||||
- { 1, 0, FILE_ATTRIBUTE_SYSTEM, "s.tmp", NULL, "system" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_DIRECTORY, "d.tmp", NULL, "directory" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_DIRECTORY, ".", NULL, ". directory" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_DIRECTORY, "..", NULL, ".. directory" },
|
||||
- { 0, 0, 0, NULL }
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, "longfilename.tmp", NULL, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, "n.tmp", NULL, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_HIDDEN, "h.tmp", NULL, "hidden" },
|
||||
+ { 0, FILE_ATTRIBUTE_SYSTEM, "s.tmp", NULL, "system" },
|
||||
+ { 0, FILE_ATTRIBUTE_DIRECTORY, "d.tmp", NULL, "directory" },
|
||||
+ { 0, FILE_ATTRIBUTE_DIRECTORY, ".", NULL, ". directory" },
|
||||
+ { 0, FILE_ATTRIBUTE_DIRECTORY, "..", NULL, ".. directory" },
|
||||
+ { 0, 0, NULL }
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, {'l','o','n','g','f','i','l','e','n','a','m','e','.','t','m','p'}, "normal" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, {'n','.','t','m','p',}, "normal" },
|
||||
- { 1, 0, FILE_ATTRIBUTE_HIDDEN, {'h','.','t','m','p',}, "hidden" },
|
||||
- { 1, 0, FILE_ATTRIBUTE_SYSTEM, {'s','.','t','m','p',}, "system" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_DIRECTORY, {'d','.','t','m','p',}, "directory" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, {0xe9,'a','.','t','m','p'}, "normal" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, {0xc9,'b','.','t','m','p'}, "normal" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, {'e','a','.','t','m','p'}, "normal" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_DIRECTORY, {'.'}, ". directory" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_DIRECTORY, {'.','.'}, ".. directory" }
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, {'l','o','n','g','f','i','l','e','n','a','m','e','.','t','m','p'}, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, {'n','.','t','m','p',}, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_HIDDEN, {'h','.','t','m','p',}, "hidden" },
|
||||
+ { 0, FILE_ATTRIBUTE_SYSTEM, {'s','.','t','m','p',}, "system" },
|
||||
+ { 0, FILE_ATTRIBUTE_DIRECTORY, {'d','.','t','m','p',}, "directory" },
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, {0xe9,'a','.','t','m','p'}, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, {0xc9,'b','.','t','m','p'}, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, {'e','a','.','t','m','p'}, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_DIRECTORY, {'.'}, ". directory" },
|
||||
+ { 0, FILE_ATTRIBUTE_DIRECTORY, {'.','.'}, ".. directory" }
|
||||
};
|
||||
static const int max_test_dir_size = 20; /* size of above plus some for .. etc */
|
||||
|
||||
@@ -148,8 +147,7 @@ static void tally_test_file(FILE_BOTH_DIRECTORY_INFORMATION *dir_info)
|
||||
if (namelen != len || memcmp(nameW, testfiles[i].nameW, len*sizeof(WCHAR)))
|
||||
static const int test_dir_count = sizeof(testfiles) / sizeof(testfiles[0]);
|
||||
static const int max_test_dir_size = sizeof(testfiles) / sizeof(testfiles[0]) + 5; /* size of above plus some for .. etc */
|
||||
@@ -162,8 +161,7 @@ static void tally_test_file(FILE_BOTH_DIRECTORY_INFORMATION *dir_info)
|
||||
if (namelen != len || memcmp(nameW, testfiles[i].name, len*sizeof(WCHAR)))
|
||||
continue;
|
||||
if (!testfiles[i].attr_done) {
|
||||
- todo_wine_if (testfiles[i].todo)
|
||||
- ok (attrib == (testfiles[i].attr & attribmask), "file %s: expected %s (%x), got %x (is your linux new enough?)\n", testfiles[i].name, testfiles[i].description, testfiles[i].attr, attrib);
|
||||
+ ok (attrib == (testfiles[i].attr & attribmask), "file %s: expected %s (%x), got %x (is your linux new enough?)\n", testfiles[i].name, testfiles[i].description, testfiles[i].attr, attrib);
|
||||
- ok (attrib == (testfiles[i].attr & attribmask), "file %s: expected %s (%x), got %x (is your linux new enough?)\n", wine_dbgstr_w(testfiles[i].name), testfiles[i].description, testfiles[i].attr, attrib);
|
||||
+ ok (attrib == (testfiles[i].attr & attribmask), "file %s: expected %s (%x), got %x (is your linux new enough?)\n", wine_dbgstr_w(testfiles[i].name), testfiles[i].description, testfiles[i].attr, attrib);
|
||||
testfiles[i].attr_done = TRUE;
|
||||
}
|
||||
testfiles[i].nfound++;
|
||||
@ -216,5 +220,5 @@ index 6918c99..683e7a6 100644
|
||||
+#endif
|
||||
+}
|
||||
--
|
||||
2.7.1
|
||||
2.8.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 866f4f12b34e5dfdf24da8074c5d9d4aa7a7f77a Mon Sep 17 00:00:00 2001
|
||||
From 80ea1e2a8dacb2ca57549236efb236669cc9153f Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Wed, 20 Aug 2014 11:26:48 -0600
|
||||
Subject: ntdll: Perform the Unix-style hidden file check within the unified
|
||||
@ -11,10 +11,10 @@ Subject: ntdll: Perform the Unix-style hidden file check within the unified
|
||||
3 files changed, 10 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
|
||||
index 41e7115..3975612 100644
|
||||
index 223b842..8b13cdc 100644
|
||||
--- a/dlls/ntdll/directory.c
|
||||
+++ b/dlls/ntdll/directory.c
|
||||
@@ -1209,17 +1209,17 @@ static DWORD WINAPI init_options( RTL_RUN_ONCE *once, void *param, void **contex
|
||||
@@ -1306,17 +1306,17 @@ static DWORD WINAPI init_options( RTL_RUN_ONCE *once, void *param, void **contex
|
||||
*
|
||||
* Check if the specified file should be hidden based on its name and the show dot files option.
|
||||
*/
|
||||
@ -37,16 +37,16 @@ index 41e7115..3975612 100644
|
||||
if (p == end || *p != '.') return FALSE;
|
||||
/* make sure it isn't '.' or '..' */
|
||||
if (p + 1 == end) return FALSE;
|
||||
@@ -1434,9 +1434,6 @@ static union file_directory_info *append_entry( void *info_ptr, IO_STATUS_BLOCK
|
||||
TRACE( "ignoring file %s\n", long_name );
|
||||
return NULL;
|
||||
@@ -1548,9 +1548,6 @@ static NTSTATUS get_dir_data_entry( struct dir_data *dir_data, void *info_ptr, I
|
||||
TRACE( "ignoring file %s\n", names->unix_name );
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
- if (!show_dot_files && long_name[0] == '.' && long_name[1] && (long_name[1] != '.' || long_name[2]))
|
||||
- if (!show_dot_files && names->long_name[0] == '.' && names->long_name[1] &&
|
||||
- (names->long_name[1] != '.' || names->long_name[2]))
|
||||
- attributes |= FILE_ATTRIBUTE_HIDDEN;
|
||||
-
|
||||
total_len = dir_info_size( class, long_len );
|
||||
if (io->Information + total_len > max_length)
|
||||
{
|
||||
|
||||
if (st.st_dev != dir_data->id.dev) st.st_ino = 0; /* ignore inode if on a different device */
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index 0b33acd..24c66bc 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
|
@ -1,51 +1,50 @@
|
||||
From 27f64eefe26b79cf7f0a0c6bc640509f759aad91 Mon Sep 17 00:00:00 2001
|
||||
From 1332e777815c624db046e5e9ece93a789ff72870 Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Thu, 22 Oct 2015 15:54:30 +0800
|
||||
Subject: ntdll: Implement FileNamesInformation class support.
|
||||
|
||||
---
|
||||
dlls/ntdll/directory.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
dlls/ntdll/directory.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
|
||||
index f7fa951..30e7d1d 100644
|
||||
index 223b842..2b54e14 100644
|
||||
--- a/dlls/ntdll/directory.c
|
||||
+++ b/dlls/ntdll/directory.c
|
||||
@@ -178,6 +178,7 @@ union file_directory_info
|
||||
@@ -159,6 +159,7 @@ union file_directory_info
|
||||
FILE_FULL_DIRECTORY_INFORMATION full;
|
||||
FILE_ID_BOTH_DIRECTORY_INFORMATION id_both;
|
||||
FILE_ID_FULL_DIRECTORY_INFORMATION id_full;
|
||||
+ FILE_NAMES_INFORMATION names;
|
||||
};
|
||||
|
||||
struct dir_data
|
||||
@@ -271,6 +272,8 @@ static inline unsigned int dir_info_size( FILE_INFORMATION_CLASS class, unsigned
|
||||
return (FIELD_OFFSET( FILE_ID_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7;
|
||||
struct dir_data_buffer
|
||||
@@ -277,6 +278,8 @@ static inline unsigned int dir_info_size( FILE_INFORMATION_CLASS class, unsigned
|
||||
return offsetof( FILE_ID_BOTH_DIRECTORY_INFORMATION, FileName[len] );
|
||||
case FileIdFullDirectoryInformation:
|
||||
return (FIELD_OFFSET( FILE_ID_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7;
|
||||
return offsetof( FILE_ID_FULL_DIRECTORY_INFORMATION, FileName[len] );
|
||||
+ case FileNamesInformation:
|
||||
+ return (FIELD_OFFSET( FILE_NAMES_INFORMATION, FileName[len] ) + 7) & ~7;
|
||||
+ return offsetof( FILE_NAMES_INFORMATION, FileName[len] );
|
||||
default:
|
||||
assert(0);
|
||||
return 0;
|
||||
@@ -1506,6 +1509,11 @@ static union file_directory_info *append_entry( struct dir_data *dir_data, void
|
||||
filename = info->id_both.FileName;
|
||||
@@ -1600,6 +1603,10 @@ static NTSTATUS get_dir_data_entry( struct dir_data *dir_data, void *info_ptr, I
|
||||
info->id_both.FileNameLength = name_len;
|
||||
break;
|
||||
|
||||
+ case FileNamesInformation:
|
||||
+ info->names.FileNameLength = long_len * sizeof(WCHAR);
|
||||
+ filename = info->names.FileName;
|
||||
+ info->names.FileNameLength = name_len;
|
||||
+ break;
|
||||
+
|
||||
default:
|
||||
assert(0);
|
||||
return NULL;
|
||||
@@ -2356,6 +2364,7 @@ NTSTATUS WINAPI NtQueryDirectoryFile( HANDLE handle, HANDLE event,
|
||||
return 0;
|
||||
@@ -1990,6 +1997,7 @@ NTSTATUS WINAPI NtQueryDirectoryFile( HANDLE handle, HANDLE event,
|
||||
case FileFullDirectoryInformation:
|
||||
case FileIdBothDirectoryInformation:
|
||||
case FileIdFullDirectoryInformation:
|
||||
+ case FileNamesInformation:
|
||||
if (length < dir_info_size( info_class, 1 )) return STATUS_INFO_LENGTH_MISMATCH;
|
||||
if (length < dir_info_align( dir_info_size( info_class, 1 ))) return STATUS_INFO_LENGTH_MISMATCH;
|
||||
if (!buffer) return STATUS_ACCESS_VIOLATION;
|
||||
break;
|
||||
--
|
||||
|
@ -1,46 +0,0 @@
|
||||
From fbb6ccb252d14593cefa5e47a5a6566406f79c40 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 28 Aug 2014 05:36:01 +0200
|
||||
Subject: kernel32: Fix leaking directory handle in RemoveDirectoryW. (try 2)
|
||||
|
||||
---
|
||||
dlls/kernel32/path.c | 17 +++++++++++------
|
||||
1 file changed, 11 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c
|
||||
index 09fb04b..7e20dc3 100644
|
||||
--- a/dlls/kernel32/path.c
|
||||
+++ b/dlls/kernel32/path.c
|
||||
@@ -1612,18 +1612,23 @@ BOOL WINAPI RemoveDirectoryW( LPCWSTR path )
|
||||
status = NtOpenFile( &handle, DELETE | SYNCHRONIZE, &attr, &io,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||
FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT );
|
||||
- if (status == STATUS_SUCCESS)
|
||||
- status = wine_nt_to_unix_file_name( &nt_name, &unix_name, FILE_OPEN, FALSE );
|
||||
- RtlFreeUnicodeString( &nt_name );
|
||||
-
|
||||
if (status != STATUS_SUCCESS)
|
||||
{
|
||||
SetLastError( RtlNtStatusToDosError(status) );
|
||||
+ RtlFreeUnicodeString( &nt_name );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
- if (!(ret = (rmdir( unix_name.Buffer ) != -1))) FILE_SetDosError();
|
||||
- RtlFreeAnsiString( &unix_name );
|
||||
+ status = wine_nt_to_unix_file_name( &nt_name, &unix_name, FILE_OPEN, FALSE );
|
||||
+ RtlFreeUnicodeString( &nt_name );
|
||||
+
|
||||
+ if (status != STATUS_SUCCESS)
|
||||
+ SetLastError( RtlNtStatusToDosError(status) );
|
||||
+ else if (!(ret = (rmdir( unix_name.Buffer ) != -1)))
|
||||
+ FILE_SetDosError();
|
||||
+
|
||||
+ if (status == STATUS_SUCCESS)
|
||||
+ RtlFreeAnsiString( &unix_name );
|
||||
NtClose( handle );
|
||||
return ret;
|
||||
}
|
||||
--
|
||||
1.7.9.5
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Fix unintentional leaks with ntdll internals
|
@ -1,29 +0,0 @@
|
||||
From 095360e2e7faec0135c0f7256c683cd28691f05a Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 10 May 2015 02:23:46 +0200
|
||||
Subject: ntdll: Use POSIX implementation to enumerate directory content.
|
||||
|
||||
---
|
||||
dlls/ntdll/directory.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
|
||||
index cbfc022..82244d5 100644
|
||||
--- a/dlls/ntdll/directory.c
|
||||
+++ b/dlls/ntdll/directory.c
|
||||
@@ -23,6 +23,12 @@
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
|
||||
+/* The FreeBSD implementation to enumerate directory content is completely
|
||||
+ * broken, which causes test failures in kernel32/file and ntdll/directory
|
||||
+ * tests, and also causes bug 35397. Fallback to the POSIX implementation
|
||||
+ * until this issue is fixed. */
|
||||
+#undef HAVE_GETDIRENTRIES
|
||||
+
|
||||
#include <assert.h>
|
||||
#include <sys/types.h>
|
||||
#ifdef HAVE_DIRENT_H
|
||||
--
|
||||
2.4.0
|
||||
|
@ -1,2 +0,0 @@
|
||||
Fixes: [35397] Use POSIX implementation to enumerate directory content on FreeBSD
|
||||
Category: stable
|
@ -1,16 +1,16 @@
|
||||
From 63ede7d3be89603d63c228072c6c3fe7a50ea3e8 Mon Sep 17 00:00:00 2001
|
||||
From b4d6d566795a8fd35176414297a58dc6596900eb Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Thu, 16 Jan 2014 21:02:11 -0700
|
||||
Subject: kernel32,ntdll: Add support for deleting junction points with
|
||||
RemoveDirectory.
|
||||
|
||||
---
|
||||
dlls/kernel32/path.c | 21 ++++++++++++++-------
|
||||
dlls/kernel32/path.c | 13 +++++++++++--
|
||||
dlls/ntdll/tests/file.c | 34 +++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 47 insertions(+), 8 deletions(-)
|
||||
2 files changed, 44 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c
|
||||
index 5847a84..58a4c38 100644
|
||||
index 620401d..11711b3 100644
|
||||
--- a/dlls/kernel32/path.c
|
||||
+++ b/dlls/kernel32/path.c
|
||||
@@ -1630,6 +1630,7 @@ BOOL WINAPI CreateDirectoryExW( LPCWSTR template, LPCWSTR path, LPSECURITY_ATTRI
|
||||
@ -21,35 +21,32 @@ index 5847a84..58a4c38 100644
|
||||
OBJECT_ATTRIBUTES attr;
|
||||
UNICODE_STRING nt_name;
|
||||
ANSI_STRING unix_name;
|
||||
@@ -1663,15 +1664,21 @@ BOOL WINAPI RemoveDirectoryW( LPCWSTR path )
|
||||
@@ -1663,15 +1664,23 @@ BOOL WINAPI RemoveDirectoryW( LPCWSTR path )
|
||||
}
|
||||
|
||||
status = wine_nt_to_unix_file_name( &nt_name, &unix_name, FILE_OPEN, FALSE );
|
||||
- RtlFreeUnicodeString( &nt_name );
|
||||
-
|
||||
- if (status != STATUS_SUCCESS)
|
||||
- SetLastError( RtlNtStatusToDosError(status) );
|
||||
- else if (!(ret = (rmdir( unix_name.Buffer ) != -1)))
|
||||
- FILE_SetDosError();
|
||||
-
|
||||
if (status == STATUS_SUCCESS)
|
||||
+ {
|
||||
+ status = NtQueryAttributesFile( &attr, &info );
|
||||
+ if (status == STATUS_SUCCESS && (info.FileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) &&
|
||||
+ (info.FileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
+ ret = (unlink( unix_name.Buffer ) != -1);
|
||||
+ else
|
||||
+ ret = (rmdir( unix_name.Buffer ) != -1);
|
||||
+ if (!ret) FILE_SetDosError();
|
||||
RtlFreeAnsiString( &unix_name );
|
||||
+ }
|
||||
if (status != STATUS_SUCCESS)
|
||||
{
|
||||
SetLastError( RtlNtStatusToDosError(status) );
|
||||
+ RtlFreeUnicodeString( &nt_name );
|
||||
NtClose( handle );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
- if (!(ret = (rmdir( unix_name.Buffer ) != -1))) FILE_SetDosError();
|
||||
+ status = NtQueryAttributesFile( &attr, &info );
|
||||
+ if (status == STATUS_SUCCESS && (info.FileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) &&
|
||||
+ (info.FileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
+ ret = (unlink( unix_name.Buffer ) != -1);
|
||||
+ else
|
||||
+ SetLastError( RtlNtStatusToDosError(status) );
|
||||
+ RtlFreeUnicodeString( &nt_name );
|
||||
+ ret = (rmdir( unix_name.Buffer ) != -1);
|
||||
+ if (!ret) FILE_SetDosError();
|
||||
+
|
||||
+ RtlFreeUnicodeString( &nt_name );
|
||||
RtlFreeAnsiString( &unix_name );
|
||||
NtClose( handle );
|
||||
return ret;
|
||||
}
|
||||
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
|
||||
index 174d48a..f7b7d48 100644
|
||||
--- a/dlls/ntdll/tests/file.c
|
||||
@ -103,5 +100,5 @@ index 174d48a..f7b7d48 100644
|
||||
/* Cleanup */
|
||||
pRtlFreeUnicodeString( &nameW );
|
||||
--
|
||||
2.7.1
|
||||
2.8.0
|
||||
|
||||
|
@ -1,3 +1,2 @@
|
||||
Fixes: [12401] Support for Junction Points
|
||||
Depends: ntdll-Fix_Free
|
||||
Depends: ntdll-NtQueryEaFile
|
||||
|
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "bd2999db92e63f3aa8b48945503c616c28726842"
|
||||
echo "9eaa37249948c4d77df37cf3649ad1db59412fcb"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -87,7 +87,6 @@ patch_enable_all ()
|
||||
enable_Staging="$1"
|
||||
enable_advapi32_LsaLookupSids="$1"
|
||||
enable_advapi32_SetSecurityInfo="$1"
|
||||
enable_amstream_GetMultiMediaStream="$1"
|
||||
enable_api_ms_win_Stub_DLLs="$1"
|
||||
enable_avifil32_AVIFile_Proxies="$1"
|
||||
enable_avifil32_IGetFrame_fnSetFormat="$1"
|
||||
@ -186,7 +185,6 @@ patch_enable_all ()
|
||||
enable_mmsystem_dll16_MIDIHDR_Refcount="$1"
|
||||
enable_mountmgr_DosDevices="$1"
|
||||
enable_mpr_WNetGetUniversalNameW="$1"
|
||||
enable_mscoree_Buffer_Overflow="$1"
|
||||
enable_mscoree_CorValidateImage="$1"
|
||||
enable_mshtml_HTMLLocation_put_hash="$1"
|
||||
enable_msidb_Implementation="$1"
|
||||
@ -210,8 +208,6 @@ patch_enable_all ()
|
||||
enable_ntdll_FileFsVolumeInformation="$1"
|
||||
enable_ntdll_FileNamesInformation="$1"
|
||||
enable_ntdll_Fix_Alignment="$1"
|
||||
enable_ntdll_Fix_Free="$1"
|
||||
enable_ntdll_FreeBSD_Directory="$1"
|
||||
enable_ntdll_Heap_FreeLists="$1"
|
||||
enable_ntdll_Hide_Wine_Exports="$1"
|
||||
enable_ntdll_Junction_Points="$1"
|
||||
@ -262,7 +258,6 @@ patch_enable_all ()
|
||||
enable_openal32_EFX_Extension="$1"
|
||||
enable_opengl32_Revert_Disable_Ext="$1"
|
||||
enable_opengl32_glDebugMessageCallback="$1"
|
||||
enable_quartz_AsyncReader="$1"
|
||||
enable_quartz_MediaSeeking_Positions="$1"
|
||||
enable_quartz_Silence_FIXMEs="$1"
|
||||
enable_rasapi32_RasEnumDevicesA="$1"
|
||||
@ -426,9 +421,6 @@ patch_enable ()
|
||||
advapi32-SetSecurityInfo)
|
||||
enable_advapi32_SetSecurityInfo="$2"
|
||||
;;
|
||||
amstream-GetMultiMediaStream)
|
||||
enable_amstream_GetMultiMediaStream="$2"
|
||||
;;
|
||||
api-ms-win-Stub_DLLs)
|
||||
enable_api_ms_win_Stub_DLLs="$2"
|
||||
;;
|
||||
@ -726,9 +718,6 @@ patch_enable ()
|
||||
mpr-WNetGetUniversalNameW)
|
||||
enable_mpr_WNetGetUniversalNameW="$2"
|
||||
;;
|
||||
mscoree-Buffer_Overflow)
|
||||
enable_mscoree_Buffer_Overflow="$2"
|
||||
;;
|
||||
mscoree-CorValidateImage)
|
||||
enable_mscoree_CorValidateImage="$2"
|
||||
;;
|
||||
@ -798,12 +787,6 @@ patch_enable ()
|
||||
ntdll-Fix_Alignment)
|
||||
enable_ntdll_Fix_Alignment="$2"
|
||||
;;
|
||||
ntdll-Fix_Free)
|
||||
enable_ntdll_Fix_Free="$2"
|
||||
;;
|
||||
ntdll-FreeBSD_Directory)
|
||||
enable_ntdll_FreeBSD_Directory="$2"
|
||||
;;
|
||||
ntdll-Heap_FreeLists)
|
||||
enable_ntdll_Heap_FreeLists="$2"
|
||||
;;
|
||||
@ -954,9 +937,6 @@ patch_enable ()
|
||||
opengl32-glDebugMessageCallback)
|
||||
enable_opengl32_glDebugMessageCallback="$2"
|
||||
;;
|
||||
quartz-AsyncReader)
|
||||
enable_quartz_AsyncReader="$2"
|
||||
;;
|
||||
quartz-MediaSeeking_Positions)
|
||||
enable_quartz_MediaSeeking_Positions="$2"
|
||||
;;
|
||||
@ -1799,9 +1779,6 @@ if test "$enable_category_stable" -eq 1; then
|
||||
if test "$enable_ntdll_Fix_Alignment" -gt 1; then
|
||||
abort "Patchset ntdll-Fix_Alignment disabled, but category-stable depends on that."
|
||||
fi
|
||||
if test "$enable_ntdll_FreeBSD_Directory" -gt 1; then
|
||||
abort "Patchset ntdll-FreeBSD_Directory disabled, but category-stable depends on that."
|
||||
fi
|
||||
if test "$enable_ntdll_Heap_FreeLists" -gt 1; then
|
||||
abort "Patchset ntdll-Heap_FreeLists disabled, but category-stable depends on that."
|
||||
fi
|
||||
@ -1912,7 +1889,6 @@ if test "$enable_category_stable" -eq 1; then
|
||||
enable_ntdll_DllRedirects=1
|
||||
enable_ntdll_FileFsFullSizeInformation=1
|
||||
enable_ntdll_Fix_Alignment=1
|
||||
enable_ntdll_FreeBSD_Directory=1
|
||||
enable_ntdll_Heap_FreeLists=1
|
||||
enable_ntdll_Pipe_SpecialCharacters=1
|
||||
enable_ntdll_RtlIpStringToAddress_Tests=1
|
||||
@ -2140,13 +2116,9 @@ if test "$enable_ntdll_Purist_Mode" -eq 1; then
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_Junction_Points" -eq 1; then
|
||||
if test "$enable_ntdll_Fix_Free" -gt 1; then
|
||||
abort "Patchset ntdll-Fix_Free disabled, but ntdll-Junction_Points depends on that."
|
||||
fi
|
||||
if test "$enable_ntdll_NtQueryEaFile" -gt 1; then
|
||||
abort "Patchset ntdll-NtQueryEaFile disabled, but ntdll-Junction_Points depends on that."
|
||||
fi
|
||||
enable_ntdll_Fix_Free=1
|
||||
enable_ntdll_NtQueryEaFile=1
|
||||
fi
|
||||
|
||||
@ -2474,21 +2446,6 @@ if test "$enable_advapi32_SetSecurityInfo" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset amstream-GetMultiMediaStream
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#37090] Implement AMStream GetMultiMediaStream functions
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/amstream/mediastream.c
|
||||
# |
|
||||
if test "$enable_amstream_GetMultiMediaStream" -eq 1; then
|
||||
patch_apply amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "amstream: Implement IAMMediaStream::GetMultiMediaStream.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset combase-RoApi
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -4335,18 +4292,6 @@ if test "$enable_mpr_WNetGetUniversalNameW" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset mscoree-Buffer_Overflow
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/mscoree/metahost.c
|
||||
# |
|
||||
if test "$enable_mscoree_Buffer_Overflow" -eq 1; then
|
||||
patch_apply mscoree-Buffer_Overflow/0001-mscoree-Avoid-buffer-overflow-when-mono-print-handle.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "mscoree: Avoid buffer overflow when mono print handler returns huge string at once.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset mscoree-CorValidateImage
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -4732,33 +4677,6 @@ if test "$enable_ntdll_Fix_Alignment" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-Fix_Free
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/path.c
|
||||
# |
|
||||
if test "$enable_ntdll_Fix_Free" -eq 1; then
|
||||
patch_apply ntdll-Fix_Free/0001-kernel32-Fix-leaking-directory-handle-in-RemoveDirec.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "kernel32: Fix leaking directory handle in RemoveDirectoryW.", 2 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-FreeBSD_Directory
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#35397] Use POSIX implementation to enumerate directory content on FreeBSD
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/directory.c
|
||||
# |
|
||||
if test "$enable_ntdll_FreeBSD_Directory" -eq 1; then
|
||||
patch_apply ntdll-FreeBSD_Directory/0001-ntdll-Use-POSIX-implementation-to-enumerate-director.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "ntdll: Use POSIX implementation to enumerate directory content.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-Heap_FreeLists
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -4801,7 +4719,7 @@ fi
|
||||
# Patchset ntdll-Junction_Points
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-Fix_Free, ntdll-NtQueryEaFile
|
||||
# | * ntdll-NtQueryEaFile
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#12401] Support for Junction Points
|
||||
@ -5628,18 +5546,6 @@ if test "$enable_opengl32_glDebugMessageCallback" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset quartz-AsyncReader
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/quartz/filesource.c
|
||||
# |
|
||||
if test "$enable_quartz_AsyncReader" -eq 1; then
|
||||
patch_apply quartz-AsyncReader/0001-quartz-AsyncReader-should-return-NULL-as-media-subty.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "quartz: AsyncReader should return NULL as media subtype for unknown formats instead of failing.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset quartz-MediaSeeking_Positions
|
||||
# |
|
||||
# | Modified files:
|
||||
|
@ -1,29 +0,0 @@
|
||||
From db3178f4292558456596cc31766480638d8a0f3a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 7 Feb 2016 01:30:22 +0100
|
||||
Subject: quartz: AsyncReader should return NULL as media subtype for unknown
|
||||
formats instead of failing.
|
||||
|
||||
---
|
||||
dlls/quartz/filesource.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c
|
||||
index 33ac442..a62db2c 100644
|
||||
--- a/dlls/quartz/filesource.c
|
||||
+++ b/dlls/quartz/filesource.c
|
||||
@@ -652,8 +652,9 @@ static HRESULT WINAPI FileSource_Load(IFileSourceFilter * iface, LPCOLESTR pszFi
|
||||
hr = GetClassMediaFile(pReader, pszFileName, &This->pmt->majortype, &This->pmt->subtype, NULL);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
- CoTaskMemFree(This->pmt);
|
||||
- This->pmt = NULL;
|
||||
+ memcpy(&This->pmt->majortype, &MEDIATYPE_Stream, sizeof(GUID));
|
||||
+ memcpy(&This->pmt->subtype, &MEDIASUBTYPE_NULL, sizeof(GUID));
|
||||
+ hr = S_OK;
|
||||
}
|
||||
}
|
||||
else
|
||||
--
|
||||
2.7.0
|
||||
|
Loading…
Reference in New Issue
Block a user