diff --git a/README.md b/README.md index 88a41235..dbceff65 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Wine-compholio contains fixes for the following Wine bugs: * Add Dynamic DST exceptions for Israel Standard Time ([Wine Bug #36374](http://bugs.winehq.org/show_bug.cgi?id=36374 "Israel timezone handled incorrectly")) * Add implementation of WTSEnumerateProcessesW ([Wine Bug #29903](http://bugs.winehq.org/show_bug.cgi?id=29903 "Some Microsoft debuggers fail to enumerate processes due to wtsapi32.WTSEnumerateProcessesW() being a stub (Microsoft Visual Studio 2005, DbgCLR from .NET 2.0 SDK)")) * Allow special characters in pipe names. ([Wine Bug #28995](http://bugs.winehq.org/show_bug.cgi?id=28995 "Unable to use named pipes with \">\" character in the name")) +* Chromium unit test fails in DecryptMessage ([Wine Bug #20748](http://bugs.winehq.org/show_bug.cgi?id=20748 "chromium's net_unittests!SSLClientSocketTest.Read_Interrupted fails.")) * Create AppData\LocalLow in user profile directory ([Wine Bug #22896](http://bugs.winehq.org/show_bug.cgi?id=22896 "Multiple applications and games need support for shell32 FOLDERID_LocalAppDataLow (.NET based Unity Engine games, Java JRE 6 in Vista mode)")) * Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](http://bugs.winehq.org/show_bug.cgi?id=16550 "ConnectNamedPort should never return OK in overlapped mode (affects chromium ui_tests.exe)")) * Fix race conditions and deadlocks in strmbase/quartz ([Wine Bug #31566](http://bugs.winehq.org/show_bug.cgi?id=31566 "Fallout 3: regression causes block at critical section when radio is enabled")) diff --git a/debian/changelog b/debian/changelog index 9ebaec4e..6cdfc73d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,7 +8,8 @@ wine-compholio (1.7.24) UNRELEASED; urgency=low * Added patch to implement AllocateAndGetTcpExTableFromStack. * Added patch to fix ConnectNamedPort return value in overlapped mode. * Added patch to store IOCS data in a property instead of GWLP_USERDATA. - -- Erich E. Hoover Sun, 27 Jul 2014 12:53:18 -0600 + * Added patch to use an empty buffer in DecryptMessage to return decrypted data. + -- Erich E. Hoover Sun, 27 Jul 2014 14:51:21 -0600 wine-compholio (1.7.23) unstable; urgency=low * Rewrite of patch system to simplify maintaining large patchsets. diff --git a/patches/Makefile b/patches/Makefile index 4a8a6927..8978fd52 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -20,6 +20,7 @@ PATCHLIST := Miscellaneous.ok \ ntdll-Junction_Points.ok \ ntdll-Pipe_SpecialCharacters.ok \ quartz-MediaSeeking_Positions.ok \ + secur32-DecryptMessage.ok \ server-ACL_Compat.ok \ server-Address_Change_Notification.ok \ server-CreateProcess_ACLs.ok \ @@ -346,6 +347,24 @@ quartz-MediaSeeking_Positions.ok: echo '+ { "quartz-MediaSeeking_Positions", "Erich E. Hoover", "Return correct IMediaSeeking stream positions in quartz." },'; \ ) > quartz-MediaSeeking_Positions.ok +# Patchset secur32-DecryptMessage +# | +# | Included patches: +# | * Use an empty buffer in DecryptMessage to return decrypted data. [by Hans Leidekker] +# | +# | This patchset fixes the following Wine bugs: +# | * [#20748] chromium's net_unittests!SSLClientSocketTest.Read_Interrupted fails. +# | +# | Modified files: +# | * dlls/secur32/schannel.c +# | +.INTERMEDIATE: secur32-DecryptMessage.ok +secur32-DecryptMessage.ok: + $(PATCH) < secur32-DecryptMessage/0001-secur32-Use-an-empty-buffer-in-DecryptMessage-to-ret.patch + @( \ + echo '+ { "secur32-DecryptMessage", "Hans Leidekker", "Use an empty buffer in DecryptMessage to return decrypted data." },'; \ + ) > secur32-DecryptMessage.ok + # Patchset server-ACL_Compat # | # | Included patches: diff --git a/patches/secur32-DecryptMessage/0001-secur32-Use-an-empty-buffer-in-DecryptMessage-to-ret.patch b/patches/secur32-DecryptMessage/0001-secur32-Use-an-empty-buffer-in-DecryptMessage-to-ret.patch new file mode 100644 index 00000000..8305b19e --- /dev/null +++ b/patches/secur32-DecryptMessage/0001-secur32-Use-an-empty-buffer-in-DecryptMessage-to-ret.patch @@ -0,0 +1,45 @@ +From da2ad05136f8f9c4863921c9042ae9d2d78ccde9 Mon Sep 17 00:00:00 2001 +From: Hans Leidekker +Date: Sun, 27 Jul 2014 14:43:23 -0600 +Subject: secur32: Use an empty buffer in DecryptMessage to return decrypted + data. + +--- + dlls/secur32/schannel.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c +index 5b86a75..502d0f2 100644 +--- a/dlls/secur32/schannel.c ++++ b/dlls/secur32/schannel.c +@@ -1209,7 +1209,7 @@ static SECURITY_STATUS SEC_ENTRY schan_DecryptMessage(PCtxtHandle context_handle + { + struct schan_transport transport; + struct schan_context *ctx; +- SecBuffer *buffer; ++ SecBuffer *buffer, *out_buffer; + SIZE_T data_size; + char *data; + unsigned expected_size; +@@ -1296,6 +1296,18 @@ static SECURITY_STATUS SEC_ENTRY schan_DecryptMessage(PCtxtHandle context_handle + buffer->BufferType = SECBUFFER_STREAM_HEADER; + buffer->cbBuffer = 5; + ++ idx = schan_find_sec_buffer_idx(message, 0, SECBUFFER_EMPTY); ++ if (idx == -1) ++ { ++ WARN("No empty buffer passed\n"); ++ return SEC_E_INTERNAL_ERROR; ++ } ++ ++ out_buffer = &message->pBuffers[idx]; ++ out_buffer->BufferType = SECBUFFER_DATA; ++ out_buffer->cbBuffer = buffer->cbBuffer; ++ out_buffer->pvBuffer = buffer->pvBuffer; ++ + return SEC_E_OK; + } + +-- +1.7.9.5 + diff --git a/patches/secur32-DecryptMessage/definition b/patches/secur32-DecryptMessage/definition new file mode 100644 index 00000000..546b5f7d --- /dev/null +++ b/patches/secur32-DecryptMessage/definition @@ -0,0 +1,4 @@ +Author: Hans Leidekker +Subject: Use an empty buffer in DecryptMessage to return decrypted data. +Revision: 1 +Fixes: [20748] Chromium unit test fails in DecryptMessage