mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against 63d6dce04746237c1cb39c22914ed666c55178e1.
This commit is contained in:
parent
1be574ad0d
commit
7dc2c0f2c6
@ -1,17 +1,17 @@
|
||||
From 89a9cb8552bc87acc96660185b2775be5b8dbc86 Mon Sep 17 00:00:00 2001
|
||||
From 50ba23f4d3f7e40bf02cb8f3cdcc4d729f6d68d4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 27 Feb 2017 20:42:27 +0100
|
||||
Subject: crypt32: Add MS root CA 2010/2011.
|
||||
|
||||
---
|
||||
dlls/crypt32/rootstore.c | 196 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 196 insertions(+)
|
||||
dlls/crypt32/rootstore.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 98 insertions(+)
|
||||
|
||||
diff --git a/dlls/crypt32/rootstore.c b/dlls/crypt32/rootstore.c
|
||||
index 8e1dc2a12e4..d6c0dfbc819 100644
|
||||
index 73d954f7404..d6c0dfbc819 100644
|
||||
--- a/dlls/crypt32/rootstore.c
|
||||
+++ b/dlls/crypt32/rootstore.c
|
||||
@@ -666,6 +666,200 @@ static const BYTE rootcertauthority[] = {
|
||||
@@ -666,6 +666,103 @@ static const BYTE rootcertauthority[] = {
|
||||
0x7e,0x6c,0x9e,0xdb,0x73,0x13,0x64,0x62,0x69,0xa5,0x2f,0x7d,0xca,0x96,0x6d,0x9f,
|
||||
0xf8,0x04,0x4d,0x30,0x92,0x3d,0x6e,0x21,0x14,0x21,0xc9,0x3d,0xe0,0xc3,0xfd,0x8a,
|
||||
0x6b,0x9d,0x4a,0xfd,0xd1,0xa1,0x9d,0x99,0x43,0x77,0x3f,0xb0,0xda };
|
||||
@ -112,115 +112,17 @@ index 8e1dc2a12e4..d6c0dfbc819 100644
|
||||
+0x64,0x82,0x91,0x04,0x12,0xe0,0xab,0x6f,0x1e,0xcb,0x50,0x05,0x61,0xb4,0x40,0xff,
|
||||
+0x59,0x86,0x71,0xd1,0xd5,0x33,0x69,0x7c,0xa9,0x73,0x8a,0x38,0xd7,0x64,0x0c,0xf1,
|
||||
+0x69 };
|
||||
+static const BYTE rootcertauthority2011[] = {
|
||||
+0x30,0x82,0x05,0xed,0x30,0x82,0x03,0xd5,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,0x3f,
|
||||
+0x8b,0xc8,0xb5,0xfc,0x9f,0xb2,0x96,0x43,0xb5,0x69,0xd6,0x6c,0x42,0xe1,0x44,0x30,
|
||||
+0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x81,
|
||||
+0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,
|
||||
+0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,
|
||||
+0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,
|
||||
+0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,
|
||||
+0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,
|
||||
+0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,
|
||||
+0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43,
|
||||
+0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,
|
||||
+0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x31,0x30,0x1e,0x17,0x0d,0x31,0x31,0x30,
|
||||
+0x33,0x32,0x32,0x32,0x32,0x30,0x35,0x32,0x38,0x5a,0x17,0x0d,0x33,0x36,0x30,0x33,
|
||||
+0x32,0x32,0x32,0x32,0x31,0x33,0x30,0x34,0x5a,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,
|
||||
+0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,
|
||||
+0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,
|
||||
+0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,
|
||||
+0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,
|
||||
+0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,
|
||||
+0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,
|
||||
+0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43,0x65,0x72,0x74,0x69,0x66,
|
||||
+0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,
|
||||
+0x32,0x30,0x31,0x31,0x30,0x82,0x02,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,
|
||||
+0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x02,0x0f,0x00,0x30,0x82,0x02,0x0a,
|
||||
+0x02,0x82,0x02,0x01,0x00,0xb2,0x80,0x41,0xaa,0x35,0x38,0x4d,0x13,0x72,0x32,0x68,
|
||||
+0x22,0x4d,0xb8,0xb2,0xf1,0xff,0xd5,0x52,0xbc,0x6c,0xc7,0xf5,0xd2,0x4a,0x8c,0x36,
|
||||
+0xee,0xd1,0xc2,0x5c,0x7e,0x8c,0x8a,0xae,0xaf,0x13,0x28,0x6f,0xc0,0x73,0xe3,0x3a,
|
||||
+0xce,0xd0,0x25,0xa8,0x5a,0x3a,0x6d,0xef,0xa8,0xb8,0x59,0xab,0x13,0x23,0x68,0xcd,
|
||||
+0x0c,0x29,0x87,0xd1,0x6f,0x80,0x5c,0x8f,0x44,0x7f,0x5d,0x90,0x01,0x52,0x58,0xac,
|
||||
+0x51,0xc5,0x5f,0x2a,0x87,0xdc,0xdc,0xd8,0x0a,0x1d,0xc1,0x03,0xb9,0x7b,0xb0,0x56,
|
||||
+0xe8,0xa3,0xde,0x64,0x61,0xc2,0x9e,0xf8,0xf3,0x7c,0xb9,0xec,0x0d,0xb5,0x54,0xfe,
|
||||
+0x4c,0xb6,0x65,0x4f,0x88,0xf0,0x9c,0x48,0x99,0x0c,0x42,0x0b,0x09,0x7c,0x31,0x59,
|
||||
+0x17,0x79,0x06,0x78,0x28,0x8d,0x89,0x3a,0x4c,0x03,0x25,0xbe,0x71,0x6a,0x5c,0x0b,
|
||||
+0xe7,0x84,0x60,0xa4,0x99,0x22,0xe3,0xd2,0xaf,0x84,0xa4,0xa7,0xfb,0xd1,0x98,0xed,
|
||||
+0x0c,0xa9,0xde,0x94,0x89,0xe1,0x0e,0xa0,0xdc,0xc0,0xce,0x99,0x3d,0xea,0x08,0x52,
|
||||
+0xbb,0x56,0x79,0xe4,0x1f,0x84,0xba,0x1e,0xb8,0xb4,0xc4,0x49,0x5c,0x4f,0x31,0x4b,
|
||||
+0x87,0xdd,0xdd,0x05,0x67,0x26,0x99,0x80,0xe0,0x71,0x11,0xa3,0xb8,0xa5,0x41,0xe2,
|
||||
+0xa4,0x53,0xb9,0xf7,0x32,0x29,0x83,0x0c,0x13,0xbf,0x36,0x5e,0x04,0xb3,0x4b,0x43,
|
||||
+0x47,0x2f,0x6b,0xe2,0x91,0x1e,0xd3,0x98,0x4f,0xdd,0x42,0x07,0xc8,0xe8,0x1d,0x12,
|
||||
+0xfc,0x99,0xa9,0x6b,0x3e,0x92,0x7e,0xc8,0xd6,0x69,0x3a,0xfc,0x64,0xbd,0xb6,0x09,
|
||||
+0x9d,0xca,0xfd,0x0c,0x0b,0xa2,0x9b,0x77,0x60,0x4b,0x03,0x94,0xa4,0x30,0x69,0x12,
|
||||
+0xd6,0x42,0x2d,0xc1,0x41,0x4c,0xca,0xdc,0xaa,0xfd,0x8f,0x5b,0x83,0x46,0x9a,0xd9,
|
||||
+0xfc,0xb1,0xd1,0xe3,0xb3,0xc9,0x7f,0x48,0x7a,0xcd,0x24,0xf0,0x41,0x8f,0x5c,0x74,
|
||||
+0xd0,0xac,0xb0,0x10,0x20,0x06,0x49,0xb7,0xc7,0x2d,0x21,0xc8,0x57,0xe3,0xd0,0x86,
|
||||
+0xf3,0x03,0x68,0xfb,0xd0,0xce,0x71,0xc1,0x89,0x99,0x4a,0x64,0x01,0x6c,0xfd,0xec,
|
||||
+0x30,0x91,0xcf,0x41,0x3c,0x92,0xc7,0xe5,0xba,0x86,0x1d,0x61,0x84,0xc7,0x5f,0x83,
|
||||
+0x39,0x62,0xae,0xb4,0x92,0x2f,0x47,0xf3,0x0b,0xf8,0x55,0xeb,0xa0,0x1f,0x59,0xd0,
|
||||
+0xbb,0x74,0x9b,0x1e,0xd0,0x76,0xe6,0xf2,0xe9,0x06,0xd7,0x10,0xe8,0xfa,0x64,0xde,
|
||||
+0x69,0xc6,0x35,0x96,0x88,0x02,0xf0,0x46,0xb8,0x3f,0x27,0x99,0x6f,0xcb,0x71,0x89,
|
||||
+0x29,0x35,0xf7,0x48,0x16,0x02,0x35,0x8f,0xd5,0x79,0x7c,0x4d,0x02,0xcf,0x5f,0xeb,
|
||||
+0x8a,0x83,0x4f,0x45,0x71,0x88,0xf9,0xa9,0x0d,0x4e,0x72,0xe9,0xc2,0x9c,0x07,0xcf,
|
||||
+0x49,0x1b,0x4e,0x04,0x0e,0x63,0x51,0x8c,0x5e,0xd8,0x00,0xc1,0x55,0x2c,0xb6,0xc6,
|
||||
+0xe0,0xc2,0x65,0x4e,0xc9,0x34,0x39,0xf5,0x9c,0xb3,0xc4,0x7e,0xe8,0x61,0x6e,0x13,
|
||||
+0x5f,0x15,0xc4,0x5f,0xd9,0x7e,0xed,0x1d,0xce,0xee,0x44,0xec,0xcb,0x2e,0x86,0xb1,
|
||||
+0xec,0x38,0xf6,0x70,0xed,0xab,0x5c,0x13,0xc1,0xd9,0x0f,0x0d,0xc7,0x80,0xb2,0x55,
|
||||
+0xed,0x34,0xf7,0xac,0x9b,0xe4,0xc3,0xda,0xe7,0x47,0x3c,0xa6,0xb5,0x8f,0x31,0xdf,
|
||||
+0xc5,0x4b,0xaf,0xeb,0xf1,0x02,0x03,0x01,0x00,0x01,0xa3,0x51,0x30,0x4f,0x30,0x0b,
|
||||
+0x06,0x03,0x55,0x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f,0x06,0x03,0x55,
|
||||
+0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1d,0x06,0x03,
|
||||
+0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x72,0x2d,0x3a,0x02,0x31,0x90,0x43,0xb9,0x14,
|
||||
+0x05,0x4e,0xe1,0xea,0xa7,0xc7,0x31,0xd1,0x23,0x89,0x34,0x30,0x10,0x06,0x09,0x2b,
|
||||
+0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x0d,0x06,
|
||||
+0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,
|
||||
+0x00,0x7f,0x72,0xcf,0x0f,0xb7,0xc5,0x15,0xdb,0x9b,0xc0,0x49,0xca,0x26,0x5b,0xfe,
|
||||
+0x9e,0x13,0xe6,0xd3,0xf0,0xd2,0xdb,0x97,0x5f,0xf2,0x4b,0x3f,0x4d,0xb3,0xae,0x19,
|
||||
+0xae,0xed,0xd7,0x97,0xa0,0xac,0xef,0xa9,0x3a,0xa3,0xc2,0x41,0xb0,0xe5,0xb8,0x91,
|
||||
+0x9e,0x13,0x81,0x24,0x03,0xe6,0x09,0xfd,0x3f,0x57,0x40,0x39,0x21,0x24,0x56,0xd1,
|
||||
+0x10,0x2f,0x4b,0x40,0xa9,0x36,0x86,0x4b,0xb4,0x53,0x57,0x9a,0xfb,0xf1,0x7e,0x89,
|
||||
+0x8f,0x11,0xfe,0x18,0x6c,0x51,0xaa,0xe8,0xed,0x09,0x95,0xb5,0xe5,0x71,0xc9,0xa1,
|
||||
+0xe9,0x87,0x75,0xa6,0x15,0x7f,0xc9,0x7e,0x37,0x54,0x5e,0x74,0x93,0xc5,0xc3,0x67,
|
||||
+0xcc,0x0d,0x4f,0x6b,0xa8,0x17,0x0c,0x6d,0x08,0x92,0x7e,0x8b,0xdd,0x81,0xaa,0x2d,
|
||||
+0x70,0x21,0xc3,0x3d,0x06,0x14,0xbb,0xbf,0x24,0x5e,0xa7,0x84,0xd7,0x3f,0x0f,0x21,
|
||||
+0x22,0xbd,0x4b,0x00,0x06,0xdb,0x97,0x1c,0xd8,0x5e,0xd4,0xc5,0x0b,0x5c,0x87,0x6e,
|
||||
+0x50,0xa4,0xe8,0xc3,0x38,0xa4,0xfb,0xcb,0x2c,0xc5,0x92,0x66,0x9b,0x85,0x5e,0xcb,
|
||||
+0x7a,0x6c,0x93,0x7c,0x80,0x29,0x58,0x5b,0x57,0xb5,0x40,0x69,0xba,0x08,0x79,0xa6,
|
||||
+0x64,0x62,0x15,0x9d,0x87,0x96,0x45,0xb5,0x66,0x23,0x20,0x03,0x8b,0x1c,0x73,0xa0,
|
||||
+0xd3,0xa2,0x79,0x33,0xe0,0x50,0x59,0x86,0xdb,0x2f,0xe5,0x02,0x25,0xea,0x73,0x2a,
|
||||
+0x9f,0x00,0x14,0xc8,0x36,0xc7,0x92,0x3b,0xe9,0x4e,0x00,0xec,0xd8,0x56,0x09,0xb9,
|
||||
+0x33,0x49,0x12,0xd2,0x54,0x0b,0x01,0xab,0xac,0x47,0xb6,0x91,0x29,0x7d,0x4c,0xb4,
|
||||
+0x75,0x80,0x52,0x01,0xe8,0xca,0x82,0xf6,0x9f,0xcc,0xac,0x9c,0x8f,0x17,0xea,0x2f,
|
||||
+0x26,0xb0,0xab,0x72,0xac,0x0b,0xfe,0x9e,0x51,0x1e,0xc7,0x43,0x55,0x67,0x4f,0x51,
|
||||
+0xb3,0x57,0xd6,0xb6,0xec,0xee,0x52,0xb7,0x3a,0xe9,0x4e,0xe1,0xd7,0x81,0x88,0xbc,
|
||||
+0x4f,0x8e,0x75,0xbb,0x4b,0xa8,0xf0,0x35,0xaa,0x26,0xd4,0x67,0x67,0x49,0xb2,0x70,
|
||||
+0x4c,0x3b,0x93,0xdc,0x1d,0xdf,0x78,0x90,0x86,0x72,0xb2,0x38,0xa4,0xd1,0xdc,0x92,
|
||||
+0x4d,0xc9,0x58,0xeb,0x2b,0x12,0x5c,0xd4,0x3b,0xae,0x8c,0x6b,0xb0,0x83,0xe5,0x01,
|
||||
+0x3f,0xf8,0x09,0x32,0xf6,0x93,0x35,0x34,0x22,0xaf,0xdd,0x37,0x0d,0x77,0x09,0x80,
|
||||
+0x2b,0xcd,0x48,0x00,0xf1,0x8c,0x99,0x19,0x47,0x05,0x01,0xe9,0xd1,0xbf,0xd1,0x4e,
|
||||
+0xd0,0xe6,0x28,0x43,0x37,0x99,0xa4,0x0a,0x4a,0x08,0xd9,0x9a,0x71,0x73,0xd2,0xaa,
|
||||
+0xcd,0x31,0x13,0x63,0x76,0xa1,0x37,0x6f,0x92,0x38,0x1e,0x7d,0x12,0x3c,0x66,0x32,
|
||||
+0xe7,0xcb,0x6d,0xe1,0xfc,0x52,0x89,0xdd,0xca,0xd6,0x66,0x05,0x9a,0x96,0x61,0xbe,
|
||||
+0xa2,0x28,0xc7,0x1c,0xa3,0xa7,0x36,0x50,0x3c,0x3a,0xa4,0xdf,0x4a,0x6e,0xe6,0x87,
|
||||
+0x3b,0xce,0xeb,0xf0,0xe0,0x81,0x37,0x9d,0x13,0x3c,0x52,0x8e,0xbd,0xb9,0x1d,0x34,
|
||||
+0xc6,0x1d,0xd5,0x0a,0x6a,0x3d,0x98,0x29,0x70,0x8c,0x89,0x2a,0xd1,0xab,0x82,0x10,
|
||||
+0x48,0x1f,0xdc,0xf4,0xef,0xa5,0xc5,0xbb,0x55,0x1a,0x38,0x63,0x84,0x4e,0xb7,0x6c,
|
||||
+0xad,0x95,0x54,0xec,0x65,0x22,0x10,0x49,0x17,0xb8,0xc0,0x1e,0xc7,0x0f,0xac,0x54,
|
||||
+0x47 };
|
||||
|
||||
static const struct CONST_BLOB {
|
||||
const BYTE *pb;
|
||||
@@ -674,6 +868,8 @@ static const struct CONST_BLOB {
|
||||
static const BYTE rootcertauthority2011[] = {
|
||||
0x30,0x82,0x05,0xed,0x30,0x82,0x03,0xd5,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,0x3f,
|
||||
0x8b,0xc8,0xb5,0xfc,0x9f,0xb2,0x96,0x43,0xb5,0x69,0xd6,0x6c,0x42,0xe1,0x44,0x30,
|
||||
@@ -771,6 +868,7 @@ static const struct CONST_BLOB {
|
||||
{ authenticode, sizeof(authenticode) },
|
||||
{ rootauthority, sizeof(rootauthority) },
|
||||
{ rootcertauthority, sizeof(rootcertauthority) },
|
||||
+ { rootcertauthority2010, sizeof(rootcertauthority2010) },
|
||||
+ { rootcertauthority2011, sizeof(rootcertauthority2011) },
|
||||
{ rootcertauthority2011, sizeof(rootcertauthority2011) },
|
||||
};
|
||||
|
||||
static void add_ms_root_certs(HCERTSTORE to)
|
||||
--
|
||||
2.11.0
|
||||
2.14.1
|
||||
|
||||
|
@ -1,27 +0,0 @@
|
||||
From 86b46494b8aa3be24829c67bece699479e6df905 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 8 Oct 2017 11:14:26 +0200
|
||||
Subject: Revert "ntdll: Support loading binaries that start inside the DOS
|
||||
area."
|
||||
|
||||
This reverts commit a27f187503f55de4b0c703bdb2d24dd07cd63cc1.
|
||||
---
|
||||
dlls/ntdll/virtual.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
|
||||
index 7bb4eb4787a..f33579840a2 100644
|
||||
--- a/dlls/ntdll/virtual.c
|
||||
+++ b/dlls/ntdll/virtual.c
|
||||
@@ -1596,8 +1596,6 @@ void virtual_init(void)
|
||||
{
|
||||
preload_reserve_start = (void *)start;
|
||||
preload_reserve_end = (void *)end;
|
||||
- /* some apps start inside the DOS area */
|
||||
- address_space_start = min( address_space_start, preload_reserve_start );
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
@ -0,0 +1,25 @@
|
||||
From 9b5bb1a278bbdf33a1402603bae315fabfa1d411 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 9 Oct 2017 21:54:22 +0200
|
||||
Subject: ntdll: Fix code to make DOS area accessible.
|
||||
|
||||
---
|
||||
dlls/ntdll/virtual.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
|
||||
index d28b138e575..3ae72af8cd9 100644
|
||||
--- a/dlls/ntdll/virtual.c
|
||||
+++ b/dlls/ntdll/virtual.c
|
||||
@@ -1622,7 +1622,7 @@ void virtual_init(void)
|
||||
|
||||
/* make the DOS area accessible (except the low 64K) to hide bugs in broken apps like Excel 2003 */
|
||||
size = (char *)address_space_start - (char *)0x10000;
|
||||
- if (size && wine_mmap_is_in_reserved_area( (void*)0x10000, size ) == 1)
|
||||
+ if (address_space_start > (void *)0x10000 && wine_mmap_is_in_reserved_area( (void *)0x10000, size ) == 1)
|
||||
wine_anon_mmap( (void *)0x10000, size, PROT_READ | PROT_WRITE, MAP_FIXED );
|
||||
}
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1,18 +1,18 @@
|
||||
From aeb5877ee941be158b6850b7c88f26eb5fa4d5b4 Mon Sep 17 00:00:00 2001
|
||||
From 83b15590acbeec9bae0d6ebefb50db07a6bd0b18 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 22 Jul 2017 07:21:45 +0200
|
||||
Subject: ntdll: Improve heap allocation performance. (v2)
|
||||
|
||||
---
|
||||
configure.ac | 9 ++
|
||||
dlls/ntdll/heap.c | 312 +++++++++++++++++++++++++++++++++++++++---------------
|
||||
2 files changed, 234 insertions(+), 87 deletions(-)
|
||||
dlls/ntdll/heap.c | 322 ++++++++++++++++++++++++++++++++++++++----------------
|
||||
2 files changed, 234 insertions(+), 97 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index bf73b651c50..e71e3bf1224 100644
|
||||
index 44c7eed86f8..b37693c01aa 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2657,6 +2657,15 @@ then
|
||||
@@ -2655,6 +2655,15 @@ then
|
||||
AC_DEFINE(HAVE___BUILTIN_CLZ, 1, [Define to 1 if you have the `__builtin_clz' built-in function.])
|
||||
fi
|
||||
|
||||
@ -29,7 +29,7 @@ index bf73b651c50..e71e3bf1224 100644
|
||||
AC_CACHE_CHECK([for __builtin_popcount], ac_cv_have___builtin_popcount,
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM(,[[return __builtin_popcount(1)]])],
|
||||
diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c
|
||||
index dc45a688925..effda46d0bf 100644
|
||||
index b47c2e69feb..effda46d0bf 100644
|
||||
--- a/dlls/ntdll/heap.c
|
||||
+++ b/dlls/ntdll/heap.c
|
||||
@@ -3,6 +3,7 @@
|
||||
@ -85,27 +85,33 @@ index dc45a688925..effda46d0bf 100644
|
||||
C_ASSERT( sizeof(ARENA_LARGE) % LARGE_ALIGNMENT == 0 );
|
||||
|
||||
#define ROUND_SIZE(size) ((((size) + ALIGNMENT - 1) & ~(ALIGNMENT-1)) + ARENA_OFFSET)
|
||||
@@ -103,8 +113,7 @@ C_ASSERT( sizeof(ARENA_LARGE) % LARGE_ALIGNMENT == 0 );
|
||||
@@ -103,9 +113,7 @@ C_ASSERT( sizeof(ARENA_LARGE) % LARGE_ALIGNMENT == 0 );
|
||||
#define NOISY 0 /* Report all errors */
|
||||
|
||||
/* minimum data size (without arenas) of an allocated block */
|
||||
-/* make sure that it's larger than a free list entry */
|
||||
-#define HEAP_MIN_DATA_SIZE ROUND_SIZE(2 * sizeof(struct list))
|
||||
-#define HEAP_MIN_ARENA_SIZE (HEAP_MIN_DATA_SIZE + sizeof(ARENA_INUSE))
|
||||
+#define HEAP_MIN_DATA_SIZE ROUND_SIZE(sizeof(ARENA_FREE) + sizeof(ARENA_FREE*) - sizeof(ARENA_INUSE))
|
||||
/* minimum size that must remain to shrink an allocated block */
|
||||
#define HEAP_MIN_SHRINK_SIZE (HEAP_MIN_DATA_SIZE+sizeof(ARENA_FREE))
|
||||
/* minimum size to start allocating large blocks */
|
||||
@@ -112,19 +121,14 @@ C_ASSERT( sizeof(ARENA_LARGE) % LARGE_ALIGNMENT == 0 );
|
||||
@@ -113,24 +121,14 @@ C_ASSERT( sizeof(ARENA_LARGE) % LARGE_ALIGNMENT == 0 );
|
||||
/* extra size to add at the end of block for tail checking */
|
||||
#define HEAP_TAIL_EXTRA_SIZE(flags) \
|
||||
((flags & HEAP_TAIL_CHECKING_ENABLED) || RUNNING_ON_VALGRIND ? ALIGNMENT : 0)
|
||||
-
|
||||
-/* Max size of the blocks on the free lists */
|
||||
-/* There will be a free list bucket for every arena size up to and including this value */
|
||||
-#define HEAP_MAX_SMALL_FREE_LIST 0x100
|
||||
-C_ASSERT( HEAP_MAX_SMALL_FREE_LIST % ALIGNMENT == 0 );
|
||||
-#define HEAP_NB_SMALL_FREE_LISTS (((HEAP_MAX_SMALL_FREE_LIST - HEAP_MIN_ARENA_SIZE) / ALIGNMENT) + 1)
|
||||
-
|
||||
-/* Max size of the blocks on the free lists above HEAP_MAX_SMALL_FREE_LIST */
|
||||
-static const SIZE_T HEAP_freeListSizes[] =
|
||||
-{
|
||||
- 0x10, 0x20, 0x30, 0x40, 0x60, 0x80, 0x100, 0x200, 0x400, 0x1000, ~0UL
|
||||
- 0x200, 0x400, 0x1000, ~0UL
|
||||
-};
|
||||
-#define HEAP_NB_FREE_LISTS (sizeof(HEAP_freeListSizes)/sizeof(HEAP_freeListSizes[0]))
|
||||
-#define HEAP_NB_FREE_LISTS (sizeof(HEAP_freeListSizes) / sizeof(HEAP_freeListSizes[0]) + HEAP_NB_SMALL_FREE_LISTS)
|
||||
-
|
||||
-typedef union
|
||||
-{
|
||||
@ -123,7 +129,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
|
||||
struct tagHEAP;
|
||||
|
||||
@@ -157,9 +161,17 @@ typedef struct tagHEAP
|
||||
@@ -163,9 +161,17 @@ typedef struct tagHEAP
|
||||
DWORD pending_pos; /* Position in pending free requests ring */
|
||||
ARENA_INUSE **pending_free; /* Ring buffer for pending free requests */
|
||||
RTL_CRITICAL_SECTION critSection; /* Critical section for serialization */
|
||||
@ -142,7 +148,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
#define HEAP_MAGIC ((DWORD)('H' | ('E'<<8) | ('A'<<16) | ('P'<<24)))
|
||||
|
||||
#define HEAP_DEF_SIZE 0x110000 /* Default heap size = 1Mb + 64Kb */
|
||||
@@ -176,6 +188,30 @@ static HEAP *processHeap; /* main process heap */
|
||||
@@ -182,6 +188,30 @@ static HEAP *processHeap; /* main process heap */
|
||||
|
||||
static BOOL HEAP_IsRealArena( HEAP *heapPtr, DWORD flags, LPCVOID block, BOOL quiet );
|
||||
|
||||
@ -173,7 +179,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
/* mark a block of memory as free for debugging purposes */
|
||||
static inline void mark_block_free( void *ptr, SIZE_T size, DWORD flags )
|
||||
{
|
||||
@@ -297,17 +333,6 @@ static void subheap_notify_free_all(SUBHEAP const *subheap)
|
||||
@@ -303,20 +333,6 @@ static void subheap_notify_free_all(SUBHEAP const *subheap)
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -183,15 +189,18 @@ index dc45a688925..effda46d0bf 100644
|
||||
-{
|
||||
- unsigned int i;
|
||||
-
|
||||
- size -= sizeof(ARENA_FREE);
|
||||
- for (i = 0; i < HEAP_NB_FREE_LISTS - 1; i++) if (size <= HEAP_freeListSizes[i]) break;
|
||||
- if (size <= HEAP_MAX_SMALL_FREE_LIST)
|
||||
- return (size - HEAP_MIN_ARENA_SIZE) / ALIGNMENT;
|
||||
-
|
||||
- for (i = HEAP_NB_SMALL_FREE_LISTS; i < HEAP_NB_FREE_LISTS - 1; i++)
|
||||
- if (size <= HEAP_freeListSizes[i - HEAP_NB_SMALL_FREE_LISTS]) break;
|
||||
- return i;
|
||||
-}
|
||||
-
|
||||
/* get the memory protection type to use for a given heap */
|
||||
static inline ULONG get_protection_type( DWORD flags )
|
||||
{
|
||||
@@ -335,12 +360,31 @@ static void HEAP_Dump( HEAP *heap )
|
||||
@@ -344,13 +360,31 @@ static void HEAP_Dump( HEAP *heap )
|
||||
DPRINTF( "Next: %p Sub-heaps:", LIST_ENTRY( heap->entry.next, HEAP, entry ) );
|
||||
LIST_FOR_EACH_ENTRY( subheap, &heap->subheap_list, SUBHEAP, entry ) DPRINTF( " %p", subheap );
|
||||
|
||||
@ -199,7 +208,8 @@ index dc45a688925..effda46d0bf 100644
|
||||
+ DPRINTF( "\nFree lists:\n" );
|
||||
for (i = 0; i < HEAP_NB_FREE_LISTS; i++)
|
||||
- DPRINTF( "%p free %08lx prev=%p next=%p\n",
|
||||
- &heap->freeList[i].arena, HEAP_freeListSizes[i],
|
||||
- &heap->freeList[i].arena, i < HEAP_NB_SMALL_FREE_LISTS ?
|
||||
- HEAP_MIN_ARENA_SIZE + i * ALIGNMENT : HEAP_freeListSizes[i - HEAP_NB_SMALL_FREE_LISTS],
|
||||
- LIST_ENTRY( heap->freeList[i].arena.entry.prev, ARENA_FREE, entry ),
|
||||
- LIST_ENTRY( heap->freeList[i].arena.entry.next, ARENA_FREE, entry ));
|
||||
+ {
|
||||
@ -228,7 +238,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
|
||||
LIST_FOR_EACH_ENTRY( subheap, &heap->subheap_list, SUBHEAP, entry )
|
||||
{
|
||||
@@ -355,11 +399,32 @@ static void HEAP_Dump( HEAP *heap )
|
||||
@@ -365,11 +399,32 @@ static void HEAP_Dump( HEAP *heap )
|
||||
if (*(DWORD *)ptr & ARENA_FLAG_FREE)
|
||||
{
|
||||
ARENA_FREE *pArena = (ARENA_FREE *)ptr;
|
||||
@ -266,7 +276,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
ptr += sizeof(*pArena) + (pArena->size & ARENA_SIZE_MASK);
|
||||
arenaSize += sizeof(ARENA_FREE);
|
||||
freeSize += pArena->size & ARENA_SIZE_MASK;
|
||||
@@ -467,20 +532,19 @@ static HEAP *HEAP_GetPtr(
|
||||
@@ -477,20 +532,19 @@ static HEAP *HEAP_GetPtr(
|
||||
*/
|
||||
static inline void HEAP_InsertFreeBlock( HEAP *heap, ARENA_FREE *pArena, BOOL last )
|
||||
{
|
||||
@ -295,7 +305,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
}
|
||||
|
||||
|
||||
@@ -491,7 +555,19 @@ static inline void HEAP_InsertFreeBlock( HEAP *heap, ARENA_FREE *pArena, BOOL la
|
||||
@@ -501,7 +555,19 @@ static inline void HEAP_InsertFreeBlock( HEAP *heap, ARENA_FREE *pArena, BOOL la
|
||||
*/
|
||||
static inline void HEAP_DeleteFreeBlock( HEAP *heap, ARENA_FREE *pArena )
|
||||
{
|
||||
@ -316,7 +326,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
}
|
||||
|
||||
|
||||
@@ -871,6 +947,15 @@ static BOOL validate_large_arena( HEAP *heap, const ARENA_LARGE *arena, BOOL qui
|
||||
@@ -881,6 +947,15 @@ static BOOL validate_large_arena( HEAP *heap, const ARENA_LARGE *arena, BOOL qui
|
||||
}
|
||||
|
||||
|
||||
@ -332,7 +342,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
/***********************************************************************
|
||||
* HEAP_CreateSubHeap
|
||||
*/
|
||||
@@ -878,7 +963,6 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||
@@ -888,7 +963,6 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||
SIZE_T commitSize, SIZE_T totalSize )
|
||||
{
|
||||
SUBHEAP *subheap;
|
||||
@ -340,7 +350,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
unsigned int i;
|
||||
|
||||
if (!address)
|
||||
@@ -939,17 +1023,21 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||
@@ -949,17 +1023,21 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||
subheap->headerSize = ROUND_SIZE( sizeof(HEAP) );
|
||||
list_add_head( &heap->subheap_list, &subheap->entry );
|
||||
|
||||
@ -372,7 +382,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
|
||||
/* Initialize critical section */
|
||||
|
||||
@@ -992,6 +1080,34 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||
@@ -1002,6 +1080,34 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||
}
|
||||
|
||||
|
||||
@ -407,7 +417,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
/***********************************************************************
|
||||
* HEAP_FindFreeBlock
|
||||
*
|
||||
@@ -1001,26 +1117,39 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||
@@ -1011,26 +1117,39 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
||||
static ARENA_FREE *HEAP_FindFreeBlock( HEAP *heap, SIZE_T size,
|
||||
SUBHEAP **ppSubHeap )
|
||||
{
|
||||
@ -459,7 +469,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
}
|
||||
|
||||
/* If no block was found, attempt to grow the heap */
|
||||
@@ -1066,13 +1195,10 @@ static ARENA_FREE *HEAP_FindFreeBlock( HEAP *heap, SIZE_T size,
|
||||
@@ -1076,13 +1195,10 @@ static ARENA_FREE *HEAP_FindFreeBlock( HEAP *heap, SIZE_T size,
|
||||
*/
|
||||
static BOOL HEAP_IsValidArenaPtr( const HEAP *heap, const ARENA_FREE *ptr )
|
||||
{
|
||||
@ -473,7 +483,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1084,7 +1210,7 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena )
|
||||
@@ -1094,7 +1210,7 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena )
|
||||
{
|
||||
DWORD flags = subheap->heap->flags;
|
||||
SIZE_T size;
|
||||
@ -482,7 +492,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
char *heapEnd = (char *)subheap->base + subheap->size;
|
||||
|
||||
/* Check for unaligned pointers */
|
||||
@@ -1101,7 +1227,8 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena )
|
||||
@@ -1111,7 +1227,8 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena )
|
||||
return FALSE;
|
||||
}
|
||||
/* Check size flags */
|
||||
@ -492,7 +502,7 @@ index dc45a688925..effda46d0bf 100644
|
||||
(pArena->size & ARENA_FLAG_PREV_FREE))
|
||||
{
|
||||
ERR("Heap %p: bad flags %08x for free arena %p\n",
|
||||
@@ -1115,34 +1242,45 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena )
|
||||
@@ -1125,34 +1242,45 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena )
|
||||
ERR("Heap %p: bad size %08lx for free arena %p\n", subheap->heap, size, pArena );
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3748f23616bf25fb2f599f7896d8437614918ce0 Mon Sep 17 00:00:00 2001
|
||||
From 44d6e7a718e083aba1127ec6927bc6171f5672d8 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 9 Oct 2017 14:18:30 +0200
|
||||
Subject: ntdll: Don't fail in NtUnmapViewOfSection when trying to unmap
|
||||
@ -6,37 +6,23 @@ Subject: ntdll: Don't fail in NtUnmapViewOfSection when trying to unmap
|
||||
|
||||
Fixes a regression introduced in a557934c76c0e0bed6b73e5c8f79a0df059ff2de.
|
||||
---
|
||||
dlls/ntdll/virtual.c | 18 +++++++++++++-----
|
||||
1 file changed, 13 insertions(+), 5 deletions(-)
|
||||
dlls/ntdll/virtual.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
|
||||
index f33579840a2..04862237bb9 100644
|
||||
index d28b138e575..70137ec79a4 100644
|
||||
--- a/dlls/ntdll/virtual.c
|
||||
+++ b/dlls/ntdll/virtual.c
|
||||
@@ -3071,13 +3071,21 @@ NTSTATUS WINAPI NtUnmapViewOfSection( HANDLE process, PVOID addr )
|
||||
server_enter_uninterrupted_section( &csVirtual, &sigset );
|
||||
if ((view = VIRTUAL_FindView( addr, 0 )) && !is_view_valloc( view ))
|
||||
{
|
||||
- SERVER_START_REQ( unmap_view )
|
||||
+ if (view->protect & VPROT_SYSTEM)
|
||||
{
|
||||
- req->base = wine_server_client_ptr( view->base );
|
||||
- status = wine_server_call( req );
|
||||
@@ -3085,7 +3085,11 @@ NTSTATUS WINAPI NtUnmapViewOfSection( HANDLE process, PVOID addr )
|
||||
if (!status) delete_view( view );
|
||||
else FIXME( "failed to unmap %p %x\n", view->base, status );
|
||||
}
|
||||
- else delete_view( view );
|
||||
+ else
|
||||
+ {
|
||||
+ delete_view( view );
|
||||
+ status = STATUS_SUCCESS;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ SERVER_START_REQ( unmap_view )
|
||||
+ {
|
||||
+ req->base = wine_server_client_ptr( view->base );
|
||||
+ status = wine_server_call( req );
|
||||
+ }
|
||||
+ SERVER_END_REQ;
|
||||
+ if (!status) delete_view( view );
|
||||
}
|
||||
- SERVER_END_REQ;
|
||||
- if (!status) delete_view( view );
|
||||
}
|
||||
server_leave_uninterrupted_section( &csVirtual, &sigset );
|
||||
return status;
|
||||
|
@ -1 +1 @@
|
||||
Fixes: [43860] Don't fail in NtUnmapViewOfSection when trying to unmap builtin view
|
||||
Fixes: Don't fail in NtUnmapViewOfSection when trying to unmap builtin view
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "fb8226f639093a3fef41f7273fa0089246d1dfa4"
|
||||
echo "63d6dce04746237c1cb39c22914ed666c55178e1"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -6338,9 +6338,9 @@ fi
|
||||
# | * dlls/ntdll/virtual.c
|
||||
# |
|
||||
if test "$enable_ntdll_DOS_Area" -eq 1; then
|
||||
patch_apply ntdll-DOS_Area/0001-Revert-ntdll-Support-loading-binaries-that-start-ins.patch
|
||||
patch_apply ntdll-DOS_Area/0001-ntdll-Fix-code-to-make-DOS-area-accessible.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"ntdll: Support loading binaries that start inside the DOS area.\".", 1 },';
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Fix code to make DOS area accessible.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
@ -6822,9 +6822,6 @@ fi
|
||||
|
||||
# Patchset ntdll-NtUnmapViewOfSection
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#43860] Don't fail in NtUnmapViewOfSection when trying to unmap builtin view
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/virtual.c
|
||||
# |
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2136f244ce59e8aa255acff56659fef497ed6821 Mon Sep 17 00:00:00 2001
|
||||
From b31cd243e2a02b730e31bde59093afc92b9dcf52 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 17 Aug 2015 01:11:47 +0200
|
||||
Subject: server: Store a reference to the parent object for pipe servers. (v2)
|
||||
@ -30,19 +30,19 @@ index 43c5ee46d71..9a1ba670ab7 100644
|
||||
"name too short %s\n", wine_dbgstr_w(str->Buffer) );
|
||||
trace( "got %s len %u\n", wine_dbgstr_w(str->Buffer), len );
|
||||
diff --git a/server/named_pipe.c b/server/named_pipe.c
|
||||
index d7f8a583c92..7104350a358 100644
|
||||
index 58f68227f2d..c52a083df9a 100644
|
||||
--- a/server/named_pipe.c
|
||||
+++ b/server/named_pipe.c
|
||||
@@ -153,6 +153,8 @@ static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue );
|
||||
@@ -152,6 +152,8 @@ static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue );
|
||||
/* server end functions */
|
||||
static void pipe_server_dump( struct object *obj, int verbose );
|
||||
static struct fd *pipe_server_get_fd( struct object *obj );
|
||||
static void pipe_server_destroy( struct object *obj);
|
||||
+static int pipe_server_link_name( struct object *obj, struct object_name *name, struct object *parent );
|
||||
+static void pipe_server_unlink_name( struct object *obj, struct object_name *name );
|
||||
static void pipe_server_destroy( struct object *obj);
|
||||
static int pipe_server_ioctl( struct fd *fd, ioctl_code_t code, struct async *async );
|
||||
|
||||
@@ -171,8 +173,8 @@ static const struct object_ops pipe_server_ops =
|
||||
static const struct object_ops pipe_server_ops =
|
||||
@@ -169,8 +171,8 @@ static const struct object_ops pipe_server_ops =
|
||||
default_get_sd, /* get_sd */
|
||||
default_set_sd, /* set_sd */
|
||||
no_lookup_name, /* lookup_name */
|
||||
@ -53,16 +53,16 @@ index d7f8a583c92..7104350a358 100644
|
||||
no_open_file, /* open_file */
|
||||
no_alloc_handle, /* alloc_handle */
|
||||
fd_close_handle, /* close_handle */
|
||||
@@ -197,6 +199,8 @@ static const struct fd_ops pipe_server_fd_ops =
|
||||
@@ -194,6 +196,8 @@ static const struct fd_ops pipe_server_fd_ops =
|
||||
/* client end functions */
|
||||
static void pipe_client_dump( struct object *obj, int verbose );
|
||||
static int pipe_client_signaled( struct object *obj, struct wait_queue_entry *entry );
|
||||
static struct fd *pipe_client_get_fd( struct object *obj );
|
||||
+static int pipe_client_link_name( struct object *obj, struct object_name *name, struct object *parent );
|
||||
+static void pipe_client_unlink_name( struct object *obj, struct object_name *name );
|
||||
static void pipe_client_destroy( struct object *obj );
|
||||
static int pipe_client_ioctl( struct fd *fd, ioctl_code_t code, struct async *async );
|
||||
|
||||
@@ -215,8 +219,8 @@ static const struct object_ops pipe_client_ops =
|
||||
@@ -212,8 +216,8 @@ static const struct object_ops pipe_client_ops =
|
||||
default_get_sd, /* get_sd */
|
||||
default_set_sd, /* set_sd */
|
||||
no_lookup_name, /* lookup_name */
|
||||
@ -73,8 +73,8 @@ index d7f8a583c92..7104350a358 100644
|
||||
no_open_file, /* open_file */
|
||||
no_alloc_handle, /* alloc_handle */
|
||||
fd_close_handle, /* close_handle */
|
||||
@@ -458,6 +462,17 @@ static void pipe_end_destroy( struct pipe_end *pipe_end )
|
||||
free_async_queue( &pipe_end->write_q );
|
||||
@@ -416,6 +420,17 @@ static void pipe_end_destroy( struct pipe_end *pipe_end )
|
||||
if (pipe_end->fd) release_object( pipe_end->fd );
|
||||
}
|
||||
|
||||
+static int pipe_server_link_name( struct object *obj, struct object_name *name, struct object *parent )
|
||||
@ -91,7 +91,7 @@ index d7f8a583c92..7104350a358 100644
|
||||
static void pipe_server_destroy( struct object *obj)
|
||||
{
|
||||
struct pipe_server *server = (struct pipe_server *)obj;
|
||||
@@ -483,6 +498,17 @@ static void pipe_server_destroy( struct object *obj)
|
||||
@@ -438,6 +453,17 @@ static void pipe_server_destroy( struct object *obj)
|
||||
release_object( server->pipe );
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ index d7f8a583c92..7104350a358 100644
|
||||
static void pipe_client_destroy( struct object *obj)
|
||||
{
|
||||
struct pipe_client *client = (struct pipe_client *)obj;
|
||||
@@ -978,9 +1004,10 @@ static void init_pipe_end( struct pipe_end *pipe_end, unsigned int pipe_flags, d
|
||||
@@ -910,9 +936,10 @@ static void init_pipe_end( struct pipe_end *pipe_end, unsigned int pipe_flags, d
|
||||
static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned int options,
|
||||
unsigned int pipe_flags )
|
||||
{
|
||||
@ -121,7 +121,7 @@ index d7f8a583c92..7104350a358 100644
|
||||
if (!server)
|
||||
return NULL;
|
||||
|
||||
@@ -1001,12 +1028,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned
|
||||
@@ -933,12 +960,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned
|
||||
return server;
|
||||
}
|
||||
|
||||
@ -137,15 +137,15 @@ index d7f8a583c92..7104350a358 100644
|
||||
if (!client)
|
||||
return NULL;
|
||||
|
||||
@@ -1084,7 +1112,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
|
||||
@@ -1016,7 +1044,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- if ((client = create_pipe_client( options, pipe->flags, pipe->outsize, options )))
|
||||
+ if ((client = create_pipe_client( pipe, options, pipe->flags, pipe->outsize, options )))
|
||||
{
|
||||
server->pipe_end.fd = (struct fd *)grab_object( server->ioctl_fd );
|
||||
set_no_fd_status( server->ioctl_fd, STATUS_BAD_DEVICE_TYPE );
|
||||
set_no_fd_status( server->pipe_end.fd, STATUS_BAD_DEVICE_TYPE );
|
||||
allow_fd_caching( server->pipe_end.fd );
|
||||
diff --git a/server/object.c b/server/object.c
|
||||
index 14cd38e6f7e..77772a8e38b 100644
|
||||
--- a/server/object.c
|
||||
|
Loading…
x
Reference in New Issue
Block a user