Removed several patches (accepted upstream).

This commit is contained in:
Sebastian Lackner 2014-12-23 23:07:04 +01:00
parent 981ea8facf
commit b6a21b238f
5 changed files with 26 additions and 401 deletions

2
debian/changelog vendored
View File

@ -28,6 +28,8 @@ wine-staging (1.7.34) UNRELEASED; urgency=low
* Removed patch for stub of ntdll.RtlSetHeapInformation (accepted upstream).
* Removed patch for wine64 support on FreeBSD (accepted upstream).
* Partially removed patches for ntdll DOS attributes (accepted upstream).
* Partially removed patches for UTF7 support (accepted upstream).
* Partially removed patches for IoCsqInitialize (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 15 Dec 2014 22:42:09 +0100
wine-compholio (1.7.33) unstable; urgency=low

View File

@ -1261,7 +1261,7 @@ ntoskrnl-Emulator.ok: ntdll-User_Shared_Data.ok
# | * [#36777] vSphere needs IoCsqInitialize
# |
# | Modified files:
# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, include/Makefile.in, include/ddk/csq.h
# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec
# |
.INTERMEDIATE: ntoskrnl-IoCsqInitialize.ok
ntoskrnl-IoCsqInitialize.ok:

View File

@ -1,340 +1,17 @@
From 33869b53b2b4bd532042b3cd92c1ab3652d583ff Mon Sep 17 00:00:00 2001
From a7936c46c18d4c5a81c8eb2aa6c027aa0ae583b0 Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Fri, 17 Oct 2014 00:18:39 -0600
Subject: kernel32/tests: Add tests for UTF-7 conversion.
---
dlls/kernel32/tests/codepage.c | 593 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 593 insertions(+)
dlls/kernel32/tests/codepage.c | 284 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 284 insertions(+)
diff --git a/dlls/kernel32/tests/codepage.c b/dlls/kernel32/tests/codepage.c
index 6e89533..0eabaac 100644
index aa7977d..fda83ca 100644
--- a/dlls/kernel32/tests/codepage.c
+++ b/dlls/kernel32/tests/codepage.c
@@ -433,6 +433,266 @@ static void test_utf7_encoding(void)
static const char base64_encoding_table[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ const struct
+ {
+ /* inputs */
+ WCHAR src[16];
+ int srclen;
+ char* dst;
+ int dstlen;
+ /* expected outputs */
+ char expected_dst[16];
+ int chars_written;
+ int len;
+ DWORD error;
+ int reversed_len;
+ }
+ tests[] =
+ {
+ /* tests string conversion with srclen=-1 */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ -1,
+ output,
+ sizeof(output) - 1,
+ "+T2BZfVQX-",
+ 11,
+ 11,
+ 0xdeadbeef,
+ 4
+ },
+ /* tests string conversion with srclen=-2 */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ -2,
+ output,
+ sizeof(output) - 1,
+ "+T2BZfVQX-",
+ 11,
+ 11,
+ 0xdeadbeef,
+ 4
+ },
+ /* tests some invalid UTF-16 (stray lead surrogate) */
+ {
+ {0xD801,0},
+ -1,
+ output,
+ sizeof(output) - 1,
+ "+2AE-",
+ 6,
+ 6,
+ 0xdeadbeef,
+ 2
+ },
+ /* tests some more invalid UTF-16 (codepoint does not exist) */
+ {
+ {0xFF00,0},
+ -1,
+ output,
+ sizeof(output) - 1,
+ "+/wA-",
+ 6,
+ 6,
+ 0xdeadbeef,
+ 2
+ },
+ /* tests string conversion with dstlen=strlen(expected_dst) */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ -1,
+ output,
+ 10,
+ "+T2BZfVQX-",
+ 10,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 3
+ },
+ /* tests string conversion with dstlen=strlen(expected_dst)+1 */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ -1,
+ output,
+ 11,
+ "+T2BZfVQX-",
+ 11,
+ 11,
+ 0xdeadbeef,
+ 4
+ },
+ /* tests string conversion with dstlen=strlen(expected_dst)+2 */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ -1,
+ output,
+ 12,
+ "+T2BZfVQX-",
+ 11,
+ 11,
+ 0xdeadbeef,
+ 4
+ },
+ /* tests dry run with dst=NULL and dstlen=0 */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ -1,
+ NULL,
+ 0,
+ {},
+ 0,
+ 11,
+ 0xdeadbeef,
+ 0
+ },
+ /* tests dry run with dst!=NULL and dstlen=0 */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ -1,
+ output,
+ 0,
+ {},
+ 0,
+ 11,
+ 0xdeadbeef,
+ 0
+ },
+ /* tests srclen > strlenW(src) */
+ {
+ {'a',0,'b',0},
+ 4,
+ output,
+ sizeof(output) - 1,
+ "a\0b",
+ 4,
+ 4,
+ 0xdeadbeef,
+ 4
+ },
+ /* tests srclen < strlenW(src) with directly encodable chars */
+ {
+ {'h','e','l','l','o',0},
+ 2,
+ output,
+ sizeof(output) - 1,
+ "he",
+ 2,
+ 2,
+ 0xdeadbeef,
+ 2
+ },
+ /* tests srclen < strlenW(src) with non-directly encodable chars */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ 2,
+ output,
+ sizeof(output) - 1,
+ "+T2BZfQ-",
+ 8,
+ 8,
+ 0xdeadbeef,
+ 2
+ },
+ /* tests a buffer that runs out while not encoding a UTF-7 sequence */
+ {
+ {'h','e','l','l','o',0},
+ -1,
+ output,
+ 2,
+ "he",
+ 2,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 2
+ },
+ /* tests a buffer that runs out after writing 1 base64 character */
+ {
+ {0x4F60,0x0001,0},
+ -1,
+ output,
+ 2,
+ "+T",
+ 2,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 0
+ },
+ /* tests a buffer that runs out after writing 2 base64 characters */
+ {
+ {0x4F60,0x0001,0},
+ -1,
+ output,
+ 3,
+ "+T2",
+ 3,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 0
+ },
+ /* tests a buffer that runs out after writing 3 base64 characters */
+ {
+ {0x4F60,0x0001,0},
+ -1,
+ output,
+ 4,
+ "+T2A",
+ 4,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 1
+ },
+ /* tests a buffer that runs out just after writing the + sign */
+ {
+ {0x4F60,0},
+ -1,
+ output,
+ 1,
+ "+",
+ 1,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 0
+ },
+ /* tests a buffer that runs out just before writing the - sign
+ * the number of bits to encode here is evenly divisible by 6 */
+ {
+ {0x4F60,0x597D,0x5417,0},
+ -1,
+ output,
+ 9,
+ "+T2BZfVQX",
+ 9,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 3
+ },
+ /* tests a buffer that runs out just before writing the - sign
+ * the number of bits to encode here is NOT evenly divisible by 6 */
+ {
+ {0x4F60,0},
+ -1,
+ output,
+ 4,
+ "+T2",
+ 3,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 0
+ },
+ /* tests a buffer that runs out in the middle of escaping a + sign */
+ {
+ {'+',0},
+ -1,
+ output,
+ 1,
+ "+",
+ 1,
+ 0,
+ ERROR_INSUFFICIENT_BUFFER,
+ 0
+ }
+ };
+
if (WideCharToMultiByte(CP_UTF7, 0, foobarW, -1, NULL, 0, NULL, NULL) == 0 &&
GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
{
@@ -525,6 +785,55 @@ static void test_utf7_encoding(void)
ok(output[expected_len] == '#', "i=0x%04x: expected output[%i]='#', got output[%i]=%i\n",
i, expected_len, expected_len, output[expected_len]);
}
+
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++)
+ {
+ memset(output, '#', sizeof(output) - 1);
+ output[sizeof(output) - 1] = 0;
+
+ SetLastError(0xdeadbeef);
+ len = WideCharToMultiByte(CP_UTF7, 0, tests[i].src, tests[i].srclen,
+ tests[i].dst, tests[i].dstlen, NULL, NULL);
+
+ ok(GetLastError() == tests[i].error,
+ "tests[%i]: expected error=0x%x, got error=0x%x\n", i, tests[i].error, GetLastError());
+ ok(len == tests[i].len, "tests[%i]: expected len=%i, got len=%i\n", i, tests[i].len, len);
+
+ if (tests[i].dst)
+ {
+ ok(memcmp(tests[i].dst, tests[i].expected_dst, tests[i].chars_written) == 0,
+ "tests[%i]: expected dst=\"%s\", got dst=\"%s\"\n",
+ i, tests[i].expected_dst, tests[i].dst);
+ ok(tests[i].dst[tests[i].chars_written] == '#',
+ "tests[%i]: expected dst[%i]='#', got dst[%i]=%i\n",
+ i, tests[i].chars_written, tests[i].chars_written, tests[i].dst[tests[i].chars_written]);
+ }
+
+ /* utf16-to-utf7 tests that are not dry runs can be reversed to make utf7-to-utf16 tests */
+ if (tests[i].chars_written)
+ {
+ WCHAR w_buffer[16];
+
+ memset(w_buffer, '#', sizeof(w_buffer) - sizeof(WCHAR));
+ w_buffer[sizeof(w_buffer) / sizeof(WCHAR) - 1] = 0;
+
+ SetLastError(0xdeadbeef);
+ len = MultiByteToWideChar(CP_UTF7, 0, tests[i].expected_dst, tests[i].chars_written,
+ w_buffer, sizeof(w_buffer) / sizeof(WCHAR) - 1);
+
+ ok(GetLastError() == 0xdeadbeef,
+ "tests[%i]: expected error=0xdeadbeef, got error=0x%x\n", i, GetLastError());
+ ok(len == tests[i].reversed_len,
+ "tests[%i]: expected len=%i, got len=%i\n", i, tests[i].reversed_len, len);
+ ok(memcmp(w_buffer, tests[i].src, tests[i].reversed_len * sizeof(WCHAR)) == 0,
+ "tests[%i]: expected w_buffer[0:%i]=%s, got w_buffer[0:%i]=%s\n",
+ i, tests[i].reversed_len, wine_dbgstr_wn(tests[i].src, tests[i].reversed_len),
+ tests[i].reversed_len, wine_dbgstr_wn(w_buffer, tests[i].reversed_len));
+ ok(w_buffer[tests[i].reversed_len] == 0x2323,
+ "tests[%i]: expected w_buffer[%i]=0x2323, got w_buffer[%i]=0x%04x\n",
+ i, tests[i].reversed_len, tests[i].reversed_len, w_buffer[tests[i].reversed_len]);
+ }
+ }
}
static void test_utf7_decoding(void)
@@ -545,6 +854,265 @@ static void test_utf7_decoding(void)
@@ -681,6 +681,265 @@ static void test_utf7_decoding(void)
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1 /* 0x70-0x7F */
};
@ -600,7 +277,7 @@ index 6e89533..0eabaac 100644
if (MultiByteToWideChar(CP_UTF7, 0, "foobar", -1, NULL, 0) == 0 &&
GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
{
@@ -645,6 +1213,31 @@ static void test_utf7_decoding(void)
@@ -781,6 +1040,31 @@ static void test_utf7_decoding(void)
"i=0x%02x: expected output=%s, got output=%s\n",
i, wine_dbgstr_wn(expected, expected_len + 1), wine_dbgstr_wn(output, expected_len + 1));
}
@ -633,5 +310,5 @@ index 6e89533..0eabaac 100644
static void test_undefined_byte_char(void)
--
2.1.3
2.2.1

View File

@ -1,4 +1,4 @@
From e600a4020ee684f73376d5c7389e6326291d3f1b Mon Sep 17 00:00:00 2001
From 59b1380d74f70b875c9e4642131b0fdbf06ec820 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 8 Nov 2014 22:39:28 +0100
Subject: msvcrt: Avoid crash when NULL pointer is passed to atof / strtod
@ -27,7 +27,7 @@ index 6f9280f..d933643 100644
}
diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c
index 1788035..5620c6d 100644
index e2d53d4..d40d8d8 100644
--- a/dlls/msvcrt/tests/string.c
+++ b/dlls/msvcrt/tests/string.c
@@ -89,6 +89,8 @@ static int (__cdecl *p_tolower)(int);
@ -37,9 +37,9 @@ index 1788035..5620c6d 100644
+static double (__cdecl *p__atof_l)(const char*,_locale_t);
+static double (__cdecl *p__strtod_l)(const char *,char**,_locale_t);
static int (__cdecl *p__strnset_s)(char*,size_t,int,size_t);
static int (__cdecl *p__wcsset_s)(wchar_t*,size_t,wchar_t);
#define SETNOFAIL(x,y) x = (void*)GetProcAddress(hMsvcrt,y)
@@ -1552,6 +1554,31 @@ static void test__strtod(void)
@@ -1553,6 +1555,31 @@ static void test__strtod(void)
char *end;
double d;
@ -71,7 +71,7 @@ index 1788035..5620c6d 100644
d = strtod(double1, &end);
ok(almost_equal(d, 12.1), "d = %lf\n", d);
ok(end == double1+4, "incorrect end (%d)\n", (int)(end-double1));
@@ -2609,6 +2636,11 @@ static void test_atoi(void)
@@ -2610,6 +2637,11 @@ static void test_atoi(void)
{
int r;
@ -83,7 +83,7 @@ index 1788035..5620c6d 100644
r = atoi("0");
ok(r == 0, "atoi(0) = %d\n", r);
@@ -2622,6 +2654,35 @@ static void test_atoi(void)
@@ -2623,6 +2655,35 @@ static void test_atoi(void)
ok(r == 0, "atoi(4294967296) = %d\n", r);
}
@ -119,16 +119,16 @@ index 1788035..5620c6d 100644
static void test_strncpy(void)
{
#define TEST_STRNCPY_LEN 10
@@ -2796,6 +2857,8 @@ START_TEST(string)
@@ -2831,6 +2892,8 @@ START_TEST(string)
p_mbrtowc = (void*)GetProcAddress(hMsvcrt, "mbrtowc");
p_mbsrtowcs = (void*)GetProcAddress(hMsvcrt, "mbsrtowcs");
p__atodbl_l = (void*)GetProcAddress(hMsvcrt, "_atodbl_l");
+ p__atof_l = (void*)GetProcAddress(hMsvcrt, "_atof_l");
+ p__strtod_l = (void*)GetProcAddress(hMsvcrt, "_strtod_l");
p__strnset_s = (void*)GetProcAddress(hMsvcrt, "_strnset_s");
p__wcsset_s = (void*)GetProcAddress(hMsvcrt, "_wcsset_s");
/* MSVCRT memcpy behaves like memmove for overlapping moves,
@@ -2848,6 +2911,7 @@ START_TEST(string)
@@ -2884,6 +2947,7 @@ START_TEST(string)
test__stricmp();
test__wcstoi64();
test_atoi();
@ -137,5 +137,5 @@ index 1788035..5620c6d 100644
test_strxfrm();
test__strnset_s();
--
1.9.1
2.2.1

View File

@ -1,4 +1,4 @@
From 4be020848661860f46ea2ce1091279ea25dc021a Mon Sep 17 00:00:00 2001
From 61ec97d56ed90a727ae0b29cc72f1f86300a72ee Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Tue, 4 Nov 2014 18:29:11 -0600
Subject: ntoskrnl.exe: Add a stub for IoCsqInitialize.
@ -6,13 +6,10 @@ Subject: ntoskrnl.exe: Add a stub for IoCsqInitialize.
---
dlls/ntoskrnl.exe/ntoskrnl.c | 12 ++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
include/Makefile.in | 1 +
include/ddk/csq.h | 33 +++++++++++++++++++++++++++++++++
4 files changed, 47 insertions(+), 1 deletion(-)
create mode 100644 include/ddk/csq.h
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index a31b186..03a79c2 100644
index 78df9f1..103ae3c 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -33,6 +33,7 @@
@ -23,7 +20,7 @@ index a31b186..03a79c2 100644
#include "ddk/ntddk.h"
#include "ddk/ntifs.h"
#include "wine/unicode.h"
@@ -1947,3 +1948,14 @@ NTSTATUS WINAPI IoRegisterPlugPlayNotification(IO_NOTIFICATION_EVENT_CATEGORY ca
@@ -1996,3 +1997,14 @@ NTSTATUS WINAPI IoRegisterPlugPlayNotification(IO_NOTIFICATION_EVENT_CATEGORY ca
FIXME("(%u %u %p %p %p %p %p) stub\n", category, flags, data, driver, callback, context, notification);
return STATUS_SUCCESS;
}
@ -39,7 +36,7 @@ index a31b186..03a79c2 100644
+ return STATUS_NOT_IMPLEMENTED;
+}
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 4ead907..ddb6b72 100644
index 3bcf21c..228da29 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -348,7 +348,7 @@
@ -51,57 +48,6 @@ index 4ead907..ddb6b72 100644
@ stub IoCsqInsertIrp
@ stub IoCsqRemoveIrp
@ stub IoCsqRemoveNextIrp
diff --git a/include/Makefile.in b/include/Makefile.in
index e8d2379..633c09d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -244,6 +244,7 @@ SRCDIR_INCLUDES = \
dde.rh \
ddeml.h \
ddk/compstui.h \
+ ddk/csq.h \
ddk/hidsdi.h \
ddk/imm.h \
ddk/mountmgr.h \
diff --git a/include/ddk/csq.h b/include/ddk/csq.h
new file mode 100644
index 0000000..6c75e5c
--- /dev/null
+++ b/include/ddk/csq.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) the Wine project
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "ddk/ntddk.h"
+
+#ifndef __WINE_CSQ_H
+#define __WINE_CSQ_H
+
+typedef struct _IO_CSQ IO_CSQ, *PIO_CSQ;
+
+typedef VOID (*PIO_CSQ_ACQUIRE_LOCK)(PIO_CSQ Csq, PKIRQL Irql);
+typedef VOID (*PIO_CSQ_COMPLETE_CANCELED_IRP)(PIO_CSQ Csq, PIRP Irp);
+typedef VOID (*PIO_CSQ_INSERT_IRP)(PIO_CSQ Csq, PIRP Irp);
+typedef PIRP (*PIO_CSQ_PEEK_NEXT_IRP)(PIO_CSQ Csq, PIRP Irp, PVOID PeekContext);
+typedef VOID (*PIO_CSQ_RELEASE_LOCK)(PIO_CSQ Csq, KIRQL Irql);
+typedef VOID (*PIO_CSQ_REMOVE_IRP)(PIO_CSQ Csq, PIRP Irp);
+
+#endif /* __WINE_CSQ_H */
--
2.1.3
2.2.1