mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 3660176e09bc02e71586b4cf42f58c9498481af6.
This commit is contained in:
parent
7750a01cea
commit
c61d12592b
@ -1,4 +1,4 @@
|
||||
From 4d8244be2c89fe601d75bd17631d87f504dcd63a Mon Sep 17 00:00:00 2001
|
||||
From 4b23aac811b441d63bc451bb2126d2da04734201 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 13 Jun 2018 10:44:49 -0500
|
||||
Subject: [PATCH] configure: Check for sys/eventfd.h, ppoll(), and shm_open().
|
||||
@ -13,10 +13,10 @@ Although perhaps we shouldn't since the server doesn't do this.
|
||||
3 files changed, 89 insertions(+)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 97b5dcfb38b..367008886d7 100755
|
||||
index c99ee5858e7..e1cc8737eb1 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -7543,6 +7543,7 @@ for ac_header in \
|
||||
@@ -7525,6 +7525,7 @@ for ac_header in \
|
||||
sys/cdio.h \
|
||||
sys/epoll.h \
|
||||
sys/event.h \
|
||||
@ -24,15 +24,15 @@ index 97b5dcfb38b..367008886d7 100755
|
||||
sys/filio.h \
|
||||
sys/ioctl.h \
|
||||
sys/ipc.h \
|
||||
@@ -18009,6 +18010,7 @@ for ac_func in \
|
||||
@@ -17912,6 +17913,7 @@ for ac_func in \
|
||||
port_create \
|
||||
posix_fadvise \
|
||||
posix_fallocate \
|
||||
+ ppoll \
|
||||
prctl \
|
||||
proc_pidinfo \
|
||||
readlink \
|
||||
@@ -18402,6 +18404,72 @@ fi
|
||||
sched_yield \
|
||||
@@ -18257,6 +18259,72 @@ fi
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -106,10 +106,10 @@ index 97b5dcfb38b..367008886d7 100755
|
||||
then
|
||||
if ${LDAP_CFLAGS:+false} :; then :
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0e65c78a81d..a3c9a627117 100644
|
||||
index bf9e8103606..adddfacc6fd 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -510,6 +510,7 @@ AC_CHECK_HEADERS(\
|
||||
@@ -498,6 +498,7 @@ AC_CHECK_HEADERS(\
|
||||
sys/cdio.h \
|
||||
sys/epoll.h \
|
||||
sys/event.h \
|
||||
@ -117,15 +117,15 @@ index 0e65c78a81d..a3c9a627117 100644
|
||||
sys/filio.h \
|
||||
sys/ioctl.h \
|
||||
sys/ipc.h \
|
||||
@@ -2212,6 +2213,7 @@ AC_CHECK_FUNCS(\
|
||||
@@ -2173,6 +2174,7 @@ AC_CHECK_FUNCS(\
|
||||
port_create \
|
||||
posix_fadvise \
|
||||
posix_fallocate \
|
||||
+ ppoll \
|
||||
prctl \
|
||||
proc_pidinfo \
|
||||
readlink \
|
||||
@@ -2262,6 +2264,16 @@ case $host_os in
|
||||
renameat \
|
||||
@@ -2215,6 +2217,16 @@ case $host_os in
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -143,10 +143,10 @@ index 0e65c78a81d..a3c9a627117 100644
|
||||
if test "x$with_ldap" != "xno"
|
||||
then
|
||||
diff --git a/include/config.h.in b/include/config.h.in
|
||||
index f66444fd715..bf8fc85e6c5 100644
|
||||
index fc3749895a3..608a255f1f7 100644
|
||||
--- a/include/config.h.in
|
||||
+++ b/include/config.h.in
|
||||
@@ -507,6 +507,9 @@
|
||||
@@ -486,6 +486,9 @@
|
||||
/* Define to 1 if you have the `posix_fallocate' function. */
|
||||
#undef HAVE_POSIX_FALLOCATE
|
||||
|
||||
@ -156,7 +156,7 @@ index f66444fd715..bf8fc85e6c5 100644
|
||||
/* Define to 1 if you have the `prctl' function. */
|
||||
#undef HAVE_PRCTL
|
||||
|
||||
@@ -585,6 +588,9 @@
|
||||
@@ -561,6 +564,9 @@
|
||||
/* Define to 1 if `interface_id' is a member of `sg_io_hdr_t'. */
|
||||
#undef HAVE_SG_IO_HDR_T_INTERFACE_ID
|
||||
|
||||
@ -166,7 +166,7 @@ index f66444fd715..bf8fc85e6c5 100644
|
||||
/* Define if sigaddset is supported */
|
||||
#undef HAVE_SIGADDSET
|
||||
|
||||
@@ -749,6 +755,9 @@
|
||||
@@ -716,6 +722,9 @@
|
||||
/* Define to 1 if you have the <sys/epoll.h> header file. */
|
||||
#undef HAVE_SYS_EPOLL_H
|
||||
|
||||
|
@ -1,339 +0,0 @@
|
||||
From 6ecb74571f99faaaf558bf10fc7f626c0c58dc24 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 13 Jun 2015 05:03:54 +0200
|
||||
Subject: [PATCH] iphlpapi: Fallback to system ping when ICMP permissions are
|
||||
not present.
|
||||
|
||||
Based on an idea by Bruno Jesus.
|
||||
---
|
||||
dlls/iphlpapi/icmp.c | 256 ++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 250 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/iphlpapi/icmp.c b/dlls/iphlpapi/icmp.c
|
||||
index 8e425ea68ed..1f55356c047 100644
|
||||
--- a/dlls/iphlpapi/icmp.c
|
||||
+++ b/dlls/iphlpapi/icmp.c
|
||||
@@ -5,6 +5,7 @@
|
||||
* RW Hall, 1999, based on public domain code PING.C by Mike Muus (1983)
|
||||
* and later works (c) 1989 Regents of Univ. of California - see copyright
|
||||
* notice at end of source-code.
|
||||
+ * Copyright 2015 Sebastian Lackner
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -32,6 +33,7 @@
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
+#include "wine/port.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_SOCKET_H
|
||||
@@ -52,7 +54,9 @@
|
||||
#endif
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
+#include <stdio.h>
|
||||
#include <errno.h>
|
||||
+#include <fcntl.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
@@ -62,6 +66,9 @@
|
||||
#ifdef HAVE_SYS_POLL_H
|
||||
# include <sys/poll.h>
|
||||
#endif
|
||||
+#ifdef HAVE_SYS_WAIT_H
|
||||
+# include <sys/wait.h>
|
||||
+#endif
|
||||
|
||||
#define USE_WS_PREFIX
|
||||
|
||||
@@ -213,6 +220,7 @@ DWORD WINAPI Icmp6SendEcho2(
|
||||
*/
|
||||
HANDLE WINAPI IcmpCreateFile(VOID)
|
||||
{
|
||||
+ static int once;
|
||||
icmp_t* icp;
|
||||
|
||||
int sid=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);
|
||||
@@ -222,15 +230,14 @@ HANDLE WINAPI IcmpCreateFile(VOID)
|
||||
non-privileged ICMP via SOCK_DGRAM type. */
|
||||
sid=socket(AF_INET,SOCK_DGRAM,IPPROTO_ICMP);
|
||||
}
|
||||
- if (sid < 0) {
|
||||
- ERR_(winediag)("Failed to use ICMP (network ping), this requires special permissions.\n");
|
||||
- SetLastError(ERROR_ACCESS_DENIED);
|
||||
- return INVALID_HANDLE_VALUE;
|
||||
+ if (sid < 0 && !once++) {
|
||||
+ FIXME_(winediag)("Failed to use ICMP (network ping), this requires special permissions.\n");
|
||||
+ FIXME_(winediag)("Falling back to system 'ping' command as a workaround.\n");
|
||||
}
|
||||
|
||||
icp=HeapAlloc(GetProcessHeap(), 0, sizeof(*icp));
|
||||
if (icp==NULL) {
|
||||
- close(sid);
|
||||
+ if (sid >= 0) close(sid);
|
||||
SetLastError(IP_NO_RESOURCES);
|
||||
return INVALID_HANDLE_VALUE;
|
||||
}
|
||||
@@ -252,11 +259,242 @@ BOOL WINAPI IcmpCloseHandle(HANDLE IcmpHandle)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
- close( icp->sid );
|
||||
+ if (icp->sid >= 0) close(icp->sid);
|
||||
HeapFree(GetProcessHeap (), 0, icp);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+static DWORD system_icmp(
|
||||
+ IPAddr DestinationAddress,
|
||||
+ LPVOID RequestData,
|
||||
+ WORD RequestSize,
|
||||
+ PIP_OPTION_INFORMATION RequestOptions,
|
||||
+ LPVOID ReplyBuffer,
|
||||
+ DWORD ReplySize,
|
||||
+ DWORD Timeout
|
||||
+ )
|
||||
+{
|
||||
+#ifdef HAVE_FORK
|
||||
+ ICMP_ECHO_REPLY *reply = ReplyBuffer;
|
||||
+ char ntoa_buffer[16]; /* 4*3 digits + 3 '.' + 1 '\0' */
|
||||
+ char size_buffer[6]; /* 5 digits + '\0' */
|
||||
+ char tos_buffer[4]; /* 3 digits + '\0' */
|
||||
+ char ttl_buffer[4]; /* 3 digits + '\0' */
|
||||
+ char time_buffer[11]; /* 10 digits + '\0' */
|
||||
+ int i, pos, res, status, argc;
|
||||
+ const char *argv[20];
|
||||
+ struct in_addr addr;
|
||||
+ int pipe_out[2];
|
||||
+ pid_t pid, wpid;
|
||||
+ char *ptr, *eol;
|
||||
+ char buf[127];
|
||||
+
|
||||
+ /* Assemble the ping commandline */
|
||||
+ argc = 0;
|
||||
+ argv[argc++] = "ping";
|
||||
+ argv[argc++] = "-c"; /* only send a single ping */
|
||||
+ argv[argc++] = "1";
|
||||
+ argv[argc++] = "-n"; /* numeric output only */
|
||||
+ argv[argc++] = "-s"; /* request size */
|
||||
+ sprintf(size_buffer, "%u", (RequestSize >= 16) ? RequestSize : 16);
|
||||
+ argv[argc++] = size_buffer;
|
||||
+ argv[argc++] = "-W"; /* timeout */
|
||||
+#ifdef __linux__
|
||||
+ /* The linux 'ping' utlity expects a time in seconds */
|
||||
+ Timeout = (Timeout + 999) / 1000;
|
||||
+#endif
|
||||
+ sprintf(time_buffer, "%u", Timeout);
|
||||
+ argv[argc++] = time_buffer;
|
||||
+
|
||||
+ if (RequestOptions)
|
||||
+ {
|
||||
+ #ifdef __linux__
|
||||
+ argv[argc++] = "-Q"; /* tos option */
|
||||
+ #else
|
||||
+ argv[argc++] = "-z"; /* tos option */
|
||||
+ #endif
|
||||
+ sprintf(tos_buffer, "%u", RequestOptions->Tos);
|
||||
+ argv[argc++] = tos_buffer;
|
||||
+ #ifdef __linux__
|
||||
+ /* TTL can only be specified for multicast addresses on FreeBSD/MacOS */
|
||||
+ argv[argc++] = "-t"; /* ttl option */
|
||||
+ sprintf(ttl_buffer, "%u", RequestOptions->Ttl);
|
||||
+ argv[argc++] = ttl_buffer;
|
||||
+ #endif
|
||||
+ }
|
||||
+
|
||||
+ addr.s_addr = DestinationAddress;
|
||||
+ if (!(ptr = inet_ntoa(addr)))
|
||||
+ {
|
||||
+ SetLastError(ERROR_INVALID_PARAMETER);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ strcpy(ntoa_buffer, ptr);
|
||||
+ argv[argc++] = ntoa_buffer;
|
||||
+ argv[argc] = NULL;
|
||||
+
|
||||
+ /* Dump commandline for debugging purposes */
|
||||
+ TRACE("Ping commandline: ");
|
||||
+ for (i = 0; i < argc; i++)
|
||||
+ {
|
||||
+ TRACE("%s ", debugstr_a(argv[i]));
|
||||
+ }
|
||||
+ TRACE("\n");
|
||||
+
|
||||
+ /* Prefill the reply struct with fallback values */
|
||||
+ memset(reply, 0, sizeof(*reply));
|
||||
+ reply->Address = DestinationAddress;
|
||||
+ reply->RoundTripTime = 40;
|
||||
+ reply->Options.Ttl = 120;
|
||||
+
|
||||
+ /* Create communication pipes */
|
||||
+#ifdef HAVE_PIPE2
|
||||
+ if (pipe2(pipe_out, O_CLOEXEC) < 0)
|
||||
+#endif
|
||||
+ {
|
||||
+ if (pipe(pipe_out) < 0)
|
||||
+ {
|
||||
+ SetLastError(ERROR_OUTOFMEMORY);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ fcntl(pipe_out[0], F_SETFD, FD_CLOEXEC);
|
||||
+ fcntl(pipe_out[1], F_SETFD, FD_CLOEXEC);
|
||||
+ }
|
||||
+
|
||||
+ /* Fork child process */
|
||||
+ pid = fork();
|
||||
+ if (pid == -1)
|
||||
+ {
|
||||
+ close(pipe_out[0]);
|
||||
+ close(pipe_out[1]);
|
||||
+ SetLastError(ERROR_OUTOFMEMORY);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ /* Child process */
|
||||
+ if (pid == 0)
|
||||
+ {
|
||||
+ static char lang_env[] = "LANG=C";
|
||||
+
|
||||
+ dup2(pipe_out[1], 1);
|
||||
+ close(pipe_out[0]);
|
||||
+ close(pipe_out[1]);
|
||||
+ close(0);
|
||||
+ close(2);
|
||||
+
|
||||
+ putenv(lang_env);
|
||||
+ execvp(argv[0], (char **)argv);
|
||||
+ _exit(1);
|
||||
+ }
|
||||
+
|
||||
+ close(pipe_out[1]);
|
||||
+
|
||||
+ /* Wait for child and read output */
|
||||
+ pos = 0;
|
||||
+ do
|
||||
+ {
|
||||
+ if (pos >= sizeof(buf) - 1)
|
||||
+ {
|
||||
+ ERR("line too long, dropping buffer\n");
|
||||
+ pos = 0;
|
||||
+ }
|
||||
+
|
||||
+ /* read next block */
|
||||
+ do
|
||||
+ {
|
||||
+ res = read(pipe_out[0], &buf[pos], (sizeof(buf) - 1) - pos);
|
||||
+ }
|
||||
+ while (res < 0 && errno == EINTR);
|
||||
+ if (res < 0)
|
||||
+ {
|
||||
+ ERR("read failed: %s\n", strerror(errno));
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ pos += res;
|
||||
+ while (pos)
|
||||
+ {
|
||||
+ eol = memchr(buf, '\n', pos);
|
||||
+ if (!eol) break;
|
||||
+ *eol = 0;
|
||||
+
|
||||
+ TRACE("Received line: %s\n", debugstr_a(buf));
|
||||
+
|
||||
+ /* Interpret address */
|
||||
+ if ((ptr = strstr(buf, "from ")))
|
||||
+ {
|
||||
+ int a, b, c, d;
|
||||
+ if (sscanf(ptr + 5, "%u.%u.%u.%u", &a, &b, &c, &d) >= 4)
|
||||
+ {
|
||||
+ reply->Address = a | (b << 8) | (c << 16) | (d << 24);
|
||||
+ addr.s_addr = reply->Address;
|
||||
+ TRACE("Got address %s\n", inet_ntoa(addr));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Interpret ttl */
|
||||
+ if ((ptr = strstr(buf, "ttl=")))
|
||||
+ {
|
||||
+ int val;
|
||||
+ if (sscanf(ptr + 4, "%u", &val) >= 1)
|
||||
+ {
|
||||
+ reply->Options.Ttl = val;
|
||||
+ TRACE("Got ttl %u\n", val);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Interpret time */
|
||||
+ if ((ptr = strstr(buf, "time=")))
|
||||
+ {
|
||||
+ float val;
|
||||
+ if (sscanf(ptr + 5, "%f", &val) >= 1)
|
||||
+ {
|
||||
+ reply->RoundTripTime = (unsigned int)(val + 0.5);
|
||||
+ TRACE("Got rtt = %u\n", reply->RoundTripTime);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ memmove(buf, eol + 1, pos - (eol + 1 - buf));
|
||||
+ pos -= (eol + 1 - buf);
|
||||
+ }
|
||||
+ }
|
||||
+ while (res > 0);
|
||||
+ close(pipe_out[0]);
|
||||
+
|
||||
+ /* reap the child process */
|
||||
+ do
|
||||
+ {
|
||||
+ wpid = waitpid(pid, &status, 0);
|
||||
+ }
|
||||
+ while (wpid < 0 && errno == EINTR);
|
||||
+
|
||||
+ /* fill out remaining struct fields */
|
||||
+ if (wpid >= 0 && WIFEXITED(status) && WEXITSTATUS(status) == 0)
|
||||
+ {
|
||||
+ if (ReplySize < RequestSize + sizeof(*reply))
|
||||
+ {
|
||||
+ reply->Status = IP_BUF_TOO_SMALL;
|
||||
+ reply->DataSize = 0;
|
||||
+ reply->Data = NULL;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ reply->Status = 0;
|
||||
+ reply->DataSize = RequestSize;
|
||||
+ reply->Data = (char *)reply + sizeof(*reply);
|
||||
+ memcpy(reply->Data, RequestData, RequestSize);
|
||||
+ }
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ SetLastError(IP_REQ_TIMED_OUT);
|
||||
+ return 0;
|
||||
+#else
|
||||
+ ERR("no fork support on this platform\n");
|
||||
+ SetLastError(ERROR_NOT_SUPPORTED);
|
||||
+ return 0;
|
||||
+#endif
|
||||
+}
|
||||
|
||||
/***********************************************************************
|
||||
* IcmpSendEcho (IPHLPAPI.@)
|
||||
@@ -310,6 +548,12 @@ DWORD WINAPI IcmpSendEcho(
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ if (icp->sid < 0) {
|
||||
+ WARN("using system ping command since SOCK_RAW was not supported.\n");
|
||||
+ return system_icmp(DestinationAddress, RequestData, RequestSize,
|
||||
+ RequestOptions, ReplyBuffer, ReplySize, Timeout);
|
||||
+ }
|
||||
+
|
||||
/* Prepare the request */
|
||||
id=getpid() & 0xFFFF;
|
||||
seq=InterlockedIncrement(&icmp_sequence) & 0xFFFF;
|
||||
--
|
||||
2.27.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [8332] Fallback to system ping command when CAP_NET_RAW is not available
|
@ -0,0 +1,37 @@
|
||||
From c7cefd4d7ba969969ad31baa4e05c3968c5ae01c Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 7 Oct 2021 09:00:38 +1100
|
||||
Subject: [PATCH 01/17] Revert "winegstreamer: Trace the unfiltered caps in
|
||||
sink_query_cb()."
|
||||
|
||||
This reverts commit fd6315eb8f6809b89b7449f4b9dd01453de32eda.
|
||||
---
|
||||
dlls/winegstreamer/wg_parser.c | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
|
||||
index 0c23ae6d351..9a382cb724c 100644
|
||||
--- a/dlls/winegstreamer/wg_parser.c
|
||||
+++ b/dlls/winegstreamer/wg_parser.c
|
||||
@@ -1006,7 +1006,6 @@ static gboolean sink_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
|
||||
case GST_QUERY_CAPS:
|
||||
{
|
||||
GstCaps *caps, *filter, *temp;
|
||||
- gchar *str;
|
||||
|
||||
gst_query_parse_caps(query, &filter);
|
||||
|
||||
@@ -1017,10 +1016,6 @@ static gboolean sink_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
|
||||
if (!caps)
|
||||
return FALSE;
|
||||
|
||||
- str = gst_caps_to_string(caps);
|
||||
- GST_LOG("Stream caps are \"%s\".", str);
|
||||
- g_free(str);
|
||||
-
|
||||
if (filter)
|
||||
{
|
||||
temp = gst_caps_intersect(caps, filter);
|
||||
--
|
||||
2.33.0
|
||||
|
@ -0,0 +1,33 @@
|
||||
From 8750208931f96be6f30a13f033658eb92a51a8ef Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 7 Oct 2021 09:00:39 +1100
|
||||
Subject: [PATCH 02/17] Revert "winegstreamer: Avoid seeking past the end of an
|
||||
IMFByteStream."
|
||||
|
||||
This reverts commit 3efb72de5aca01d3d979ce697728e51bc3e99901.
|
||||
---
|
||||
dlls/winegstreamer/media_source.c | 8 --------
|
||||
1 file changed, 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index 6ecd345cb73..dab85e4689d 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -639,14 +639,6 @@ static DWORD CALLBACK read_thread(void *arg)
|
||||
else if (offset + size >= file_size)
|
||||
size = file_size - offset;
|
||||
|
||||
- /* Some IMFByteStreams (including the standard file-based stream) return
|
||||
- * an error when reading past the file size. */
|
||||
- if (!size)
|
||||
- {
|
||||
- wg_parser_push_data(source->wg_parser, data, 0);
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
if (!array_reserve(&data, &buffer_size, size, 1))
|
||||
{
|
||||
free(data);
|
||||
--
|
||||
2.33.0
|
||||
|
@ -0,0 +1,52 @@
|
||||
From 111eb77f0dc9fcf241167dec1656818e7a636f0a Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 7 Oct 2021 09:00:39 +1100
|
||||
Subject: [PATCH 03/17] Revert "winegstreamer: Avoid passing a NULL buffer to
|
||||
wg_parser_push_data() in the case of a zero-length read."
|
||||
|
||||
This reverts commit 585acfa04188f85fb9138e57d56dd44b870dca41.
|
||||
---
|
||||
dlls/winegstreamer/media_source.c | 7 ++-----
|
||||
dlls/winegstreamer/quartz_parser.c | 5 +----
|
||||
2 files changed, 3 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index dab85e4689d..703bdd7c57d 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -613,12 +613,9 @@ static DWORD CALLBACK read_thread(void *arg)
|
||||
{
|
||||
struct media_source *source = arg;
|
||||
IMFByteStream *byte_stream = source->byte_stream;
|
||||
- size_t buffer_size = 4096;
|
||||
+ size_t buffer_size = 0;
|
||||
uint64_t file_size;
|
||||
- void *data;
|
||||
-
|
||||
- if (!(data = malloc(buffer_size)))
|
||||
- return 0;
|
||||
+ void *data = NULL;
|
||||
|
||||
IMFByteStream_GetLength(byte_stream, &file_size);
|
||||
|
||||
diff --git a/dlls/winegstreamer/quartz_parser.c b/dlls/winegstreamer/quartz_parser.c
|
||||
index 6d79d2ef129..b6655d5da3c 100644
|
||||
--- a/dlls/winegstreamer/quartz_parser.c
|
||||
+++ b/dlls/winegstreamer/quartz_parser.c
|
||||
@@ -786,12 +786,9 @@ static DWORD CALLBACK read_thread(void *arg)
|
||||
{
|
||||
struct parser *filter = arg;
|
||||
LONGLONG file_size, unused;
|
||||
- size_t buffer_size = 4096;
|
||||
+ size_t buffer_size = 0;
|
||||
void *data = NULL;
|
||||
|
||||
- if (!(data = malloc(buffer_size)))
|
||||
- return 0;
|
||||
-
|
||||
IAsyncReader_Length(filter->reader, &file_size, &unused);
|
||||
|
||||
TRACE("Starting read thread for filter %p.\n", filter);
|
||||
--
|
||||
2.33.0
|
||||
|
@ -0,0 +1,122 @@
|
||||
From 6b2ebf10c196d3ced85546af54599071d750bb1d Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 7 Oct 2021 09:00:40 +1100
|
||||
Subject: [PATCH 04/17] Revert "winegstreamer: Use array_reserve() to
|
||||
reallocate read buffers."
|
||||
|
||||
This reverts commit 59997c355fdc9cb5857c767b3bf16c9513b3d1f3.
|
||||
---
|
||||
dlls/winegstreamer/gst_private.h | 2 --
|
||||
dlls/winegstreamer/main.c | 27 ---------------------------
|
||||
dlls/winegstreamer/media_source.c | 8 ++++----
|
||||
dlls/winegstreamer/quartz_parser.c | 8 ++++----
|
||||
4 files changed, 8 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/gst_private.h b/dlls/winegstreamer/gst_private.h
|
||||
index 986c8ca695d..ebe0bf6f50d 100644
|
||||
--- a/dlls/winegstreamer/gst_private.h
|
||||
+++ b/dlls/winegstreamer/gst_private.h
|
||||
@@ -38,8 +38,6 @@
|
||||
|
||||
#include "unixlib.h"
|
||||
|
||||
-bool array_reserve(void **elements, size_t *capacity, size_t count, size_t size) DECLSPEC_HIDDEN;
|
||||
-
|
||||
static inline const char *debugstr_time(REFERENCE_TIME time)
|
||||
{
|
||||
ULONGLONG abstime = time >= 0 ? time : -time;
|
||||
diff --git a/dlls/winegstreamer/main.c b/dlls/winegstreamer/main.c
|
||||
index d6f19fb4ad1..c799aa06d1b 100644
|
||||
--- a/dlls/winegstreamer/main.c
|
||||
+++ b/dlls/winegstreamer/main.c
|
||||
@@ -31,33 +31,6 @@ static unixlib_handle_t unix_handle;
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(quartz);
|
||||
|
||||
-bool array_reserve(void **elements, size_t *capacity, size_t count, size_t size)
|
||||
-{
|
||||
- unsigned int new_capacity, max_capacity;
|
||||
- void *new_elements;
|
||||
-
|
||||
- if (count <= *capacity)
|
||||
- return TRUE;
|
||||
-
|
||||
- max_capacity = ~(SIZE_T)0 / size;
|
||||
- if (count > max_capacity)
|
||||
- return FALSE;
|
||||
-
|
||||
- new_capacity = max(4, *capacity);
|
||||
- while (new_capacity < count && new_capacity <= max_capacity / 2)
|
||||
- new_capacity *= 2;
|
||||
- if (new_capacity < count)
|
||||
- new_capacity = max_capacity;
|
||||
-
|
||||
- if (!(new_elements = realloc(*elements, new_capacity * size)))
|
||||
- return FALSE;
|
||||
-
|
||||
- *elements = new_elements;
|
||||
- *capacity = new_capacity;
|
||||
-
|
||||
- return TRUE;
|
||||
-}
|
||||
-
|
||||
struct wg_parser *wg_parser_create(enum wg_parser_type type, bool unlimited_buffering)
|
||||
{
|
||||
struct wg_parser_create_params params =
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index 703bdd7c57d..da898f20f66 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -613,7 +613,7 @@ static DWORD CALLBACK read_thread(void *arg)
|
||||
{
|
||||
struct media_source *source = arg;
|
||||
IMFByteStream *byte_stream = source->byte_stream;
|
||||
- size_t buffer_size = 0;
|
||||
+ uint32_t buffer_size = 0;
|
||||
uint64_t file_size;
|
||||
void *data = NULL;
|
||||
|
||||
@@ -636,10 +636,10 @@ static DWORD CALLBACK read_thread(void *arg)
|
||||
else if (offset + size >= file_size)
|
||||
size = file_size - offset;
|
||||
|
||||
- if (!array_reserve(&data, &buffer_size, size, 1))
|
||||
+ if (size > buffer_size)
|
||||
{
|
||||
- free(data);
|
||||
- return 0;
|
||||
+ buffer_size = size;
|
||||
+ data = realloc(data, size);
|
||||
}
|
||||
|
||||
ret_size = 0;
|
||||
diff --git a/dlls/winegstreamer/quartz_parser.c b/dlls/winegstreamer/quartz_parser.c
|
||||
index b6655d5da3c..6ae1a99a14a 100644
|
||||
--- a/dlls/winegstreamer/quartz_parser.c
|
||||
+++ b/dlls/winegstreamer/quartz_parser.c
|
||||
@@ -786,7 +786,7 @@ static DWORD CALLBACK read_thread(void *arg)
|
||||
{
|
||||
struct parser *filter = arg;
|
||||
LONGLONG file_size, unused;
|
||||
- size_t buffer_size = 0;
|
||||
+ uint32_t buffer_size = 0;
|
||||
void *data = NULL;
|
||||
|
||||
IAsyncReader_Length(filter->reader, &file_size, &unused);
|
||||
@@ -807,10 +807,10 @@ static DWORD CALLBACK read_thread(void *arg)
|
||||
else if (offset + size >= file_size)
|
||||
size = file_size - offset;
|
||||
|
||||
- if (!array_reserve(&data, &buffer_size, size, 1))
|
||||
+ if (size > buffer_size)
|
||||
{
|
||||
- free(data);
|
||||
- return 0;
|
||||
+ buffer_size = size;
|
||||
+ data = realloc(data, size);
|
||||
}
|
||||
|
||||
hr = IAsyncReader_SyncRead(filter->reader, offset, size, data);
|
||||
--
|
||||
2.33.0
|
||||
|
@ -0,0 +1,44 @@
|
||||
From 611e86da3f0b7050cd10c6fa693e31d7f37d7a8a Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 7 Oct 2021 09:00:41 +1100
|
||||
Subject: [PATCH 05/17] Revert "winegstreamer: Handle zero-length reads in
|
||||
src_getrange_cb()."
|
||||
|
||||
This reverts commit 8e9d7b031f7b0c93471cfbffe8f720c34623a273.
|
||||
---
|
||||
dlls/winegstreamer/wg_parser.c | 12 +-----------
|
||||
1 file changed, 1 insertion(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
|
||||
index 9a382cb724c..72dfab8f3d6 100644
|
||||
--- a/dlls/winegstreamer/wg_parser.c
|
||||
+++ b/dlls/winegstreamer/wg_parser.c
|
||||
@@ -1272,7 +1272,7 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
|
||||
GstMapInfo map_info;
|
||||
bool ret;
|
||||
|
||||
- GST_LOG("pad %p, offset %" G_GINT64_MODIFIER "u, size %u, buffer %p.", pad, offset, size, *buffer);
|
||||
+ GST_LOG("pad %p, offset %" G_GINT64_MODIFIER "u, length %u, buffer %p.", pad, offset, size, *buffer);
|
||||
|
||||
if (offset == GST_BUFFER_OFFSET_NONE)
|
||||
offset = parser->next_pull_offset;
|
||||
@@ -1281,16 +1281,6 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
|
||||
if (!*buffer)
|
||||
*buffer = new_buffer = gst_buffer_new_and_alloc(size);
|
||||
|
||||
- if (!size)
|
||||
- {
|
||||
- /* asfreader occasionally asks for zero bytes. gst_buffer_map() will
|
||||
- * return NULL in this case. Avoid confusing the read thread by asking
|
||||
- * it for zero bytes. */
|
||||
- gst_buffer_set_size(*buffer, 0);
|
||||
- GST_LOG("Returning empty buffer.");
|
||||
- return GST_FLOW_OK;
|
||||
- }
|
||||
-
|
||||
gst_buffer_map(*buffer, &map_info, GST_MAP_WRITE);
|
||||
|
||||
pthread_mutex_lock(&parser->mutex);
|
||||
--
|
||||
2.33.0
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9519e2c9a353d51703831646c3e95bd0eb488846 Mon Sep 17 00:00:00 2001
|
||||
From cbb33659c8d97084e41648dd6d093508d493ffd8 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Wed, 6 Oct 2021 08:38:11 +1100
|
||||
Subject: [PATCH 01/12] Revert "winegstreamer: Convert the Unix library to the
|
||||
Subject: [PATCH 06/17] Revert "winegstreamer: Convert the Unix library to the
|
||||
__wine_unix_call interface."
|
||||
|
||||
This reverts commit 4ba31162c37ea237763e650f6242535d86ffb170.
|
@ -1,7 +1,7 @@
|
||||
From d524440204163e2ad00ccb94886f299c3afa9e3c Mon Sep 17 00:00:00 2001
|
||||
From 3f0ae88023b048aa9ae2d942a7d38a305a70fde2 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Wed, 6 Oct 2021 08:38:12 +1100
|
||||
Subject: [PATCH 02/12] Revert "winegstreamer: Return void from
|
||||
Subject: [PATCH 07/17] Revert "winegstreamer: Return void from
|
||||
wg_parser_stream_seek()."
|
||||
|
||||
This reverts commit 494039d0d0df8fd5b2b3442caac7bd6c0c7433c0.
|
@ -1,7 +1,7 @@
|
||||
From 6725238dfb2de2144fccfc83f0f4fbf96aba4b6c Mon Sep 17 00:00:00 2001
|
||||
From 2060f5090f7b51b46d791b6f7997857ea7dd2797 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Wed, 6 Oct 2021 08:38:12 +1100
|
||||
Subject: [PATCH 03/12] Revert "winegstreamer: Move Unix library definitions
|
||||
Subject: [PATCH 08/17] Revert "winegstreamer: Move Unix library definitions
|
||||
into a separate header."
|
||||
|
||||
This reverts commit 84b870bb1fcac27288ed70d28de6a1c2649e9fe6.
|
@ -1,7 +1,7 @@
|
||||
From 673582fbfd99f1d1837127bac4bb7dab01d9f84b Mon Sep 17 00:00:00 2001
|
||||
From a0f69a9083c84afe21f397fdb4c7511cff4706cd Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 2 Oct 2021 10:35:45 +1000
|
||||
Subject: [PATCH 04/12] Revert "winegstreamer: Remove the no longer used
|
||||
Subject: [PATCH 09/17] Revert "winegstreamer: Remove the no longer used
|
||||
start_dispatch_thread() declaration."
|
||||
|
||||
This reverts commit a87abdbe85779adf6a2a7897bd88984587880693.
|
@ -1,7 +1,7 @@
|
||||
From c583b4715063e2b961724779c963fffb4098ec75 Mon Sep 17 00:00:00 2001
|
||||
From 49bb1f9a0024f79c5fc4bd015e87a94d9b088f3b Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 2 Oct 2021 10:35:46 +1000
|
||||
Subject: [PATCH 05/12] Revert "winegstreamer: Set unlimited buffering using a
|
||||
Subject: [PATCH 10/17] Revert "winegstreamer: Set unlimited buffering using a
|
||||
flag for wg_parser_create()."
|
||||
|
||||
This reverts commit 45690320f933d68f613f95f0330098426fc5a08f.
|
@ -1,7 +1,7 @@
|
||||
From 8c3c3aead2c71f69d4b132f897f2a746e56b9e3c Mon Sep 17 00:00:00 2001
|
||||
From a609f821cebb9005b52f5642c74d2e5d7a6a62c4 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 2 Oct 2021 10:35:47 +1000
|
||||
Subject: [PATCH 06/12] Revert "winegstreamer: Initialize GStreamer in
|
||||
Subject: [PATCH 11/17] Revert "winegstreamer: Initialize GStreamer in
|
||||
wg_parser_create()."
|
||||
|
||||
This reverts commit 3643f73ab61f05ddc9a637f8613c933dda0dd232.
|
@ -1,7 +1,7 @@
|
||||
From edbd61fcdce0925f6efe4cc91bad006fbeb2ab2f Mon Sep 17 00:00:00 2001
|
||||
From 145dfaf9d560e16658710819e2b598e135ccb554 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 2 Oct 2021 10:35:47 +1000
|
||||
Subject: [PATCH 07/12] Revert "winegstreamer: Use a single wg_parser_create()
|
||||
Subject: [PATCH 12/17] Revert "winegstreamer: Use a single wg_parser_create()
|
||||
entry point."
|
||||
|
||||
This reverts commit eab189810d9c40c698bd049d9af647e195cd5993.
|
@ -1,7 +1,7 @@
|
||||
From 9e4429f355fda7b1d3572aa849de2c3d2326885b Mon Sep 17 00:00:00 2001
|
||||
From d32ea8a60ed0666a860e3bb6d8bb0c2f11fc80bd Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sun, 19 Sep 2021 13:07:56 +1000
|
||||
Subject: [PATCH 08/12] Revert "winegstreamer: Fix return code in init_gst
|
||||
Subject: [PATCH 13/17] Revert "winegstreamer: Fix return code in init_gst
|
||||
failure case."
|
||||
|
||||
This reverts commit b9a7e961cdd39203866be38e90b1d901595d54ba.
|
@ -1,7 +1,7 @@
|
||||
From 47c589a15c0a20a6643fc61eab0772e60bb7d6e9 Mon Sep 17 00:00:00 2001
|
||||
From cfc2e7689ca9832750e81e11bcff48715a8de778 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sun, 19 Sep 2021 13:08:02 +1000
|
||||
Subject: [PATCH 09/12] Revert "winegstreamer: Allocate source media buffers in
|
||||
Subject: [PATCH 14/17] Revert "winegstreamer: Allocate source media buffers in
|
||||
the PE components."
|
||||
|
||||
This reverts commit 8b7390f80d866435f06f2571a93bcd67c0947673.
|
@ -1,7 +1,7 @@
|
||||
From 4fc216dc84f0d25c1bfe828f0ab01747536dc6f7 Mon Sep 17 00:00:00 2001
|
||||
From 7ef1cf5893b686861b1704c9b87e2aa7ae29ce11 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sun, 19 Sep 2021 13:08:03 +1000
|
||||
Subject: [PATCH 10/12] Revert "winegstreamer: Duplicate source shutdown path
|
||||
Subject: [PATCH 15/17] Revert "winegstreamer: Duplicate source shutdown path
|
||||
into constructor with leak fixes."
|
||||
|
||||
This reverts commit 67734bfce31d6032cee1a8980a9022665e9e18fa.
|
@ -1,7 +1,7 @@
|
||||
From b1c93d216b7319beeb1588c427408809cd0f66ff Mon Sep 17 00:00:00 2001
|
||||
From f47579e06833eeab21cb0ac30cd36bec8889a477 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sun, 19 Sep 2021 13:08:04 +1000
|
||||
Subject: [PATCH 11/12] Revert "winegstreamer: Properly clean up from failure
|
||||
Subject: [PATCH 16/17] Revert "winegstreamer: Properly clean up from failure
|
||||
in wg_parser_connect()."
|
||||
|
||||
This reverts commit 721b1eb2ebe5c3eaab8ac3fb1e4f4648cbee5b4d.
|
@ -1,7 +1,7 @@
|
||||
From c7efccc7753bbda48493a7ff94fea0b72eb398c6 Mon Sep 17 00:00:00 2001
|
||||
From d5ab02f7aaba148ecc74926d3fdda6484e74a646 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sun, 19 Sep 2021 13:08:05 +1000
|
||||
Subject: [PATCH 12/12] Revert "winegstreamer: Factor out more of the init_gst
|
||||
Subject: [PATCH 17/17] Revert "winegstreamer: Factor out more of the init_gst
|
||||
callback into wg_parser_connect()."
|
||||
|
||||
This reverts commit 830efe873a967dbbb0c9a65be6a66b124a5fa826.
|
@ -1,4 +1,4 @@
|
||||
From 0d7dd662276c859955251d2cbeef0d60195d6574 Mon Sep 17 00:00:00 2001
|
||||
From eb4503d43fbe4282eb8bf3036bc0a7a0f299691c Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Thu, 16 Jan 2014 20:56:49 -0700
|
||||
Subject: [PATCH] ntdll: Add support for junction point creation.
|
||||
@ -14,13 +14,13 @@ Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
create mode 100644 include/ntifs.h
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 855f0848eec..41ab0c1d8e4 100644
|
||||
index ecc9f1c8af5..2b68bdde1d2 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2215,6 +2215,8 @@ AC_CHECK_FUNCS(\
|
||||
@@ -2175,6 +2175,8 @@ AC_CHECK_FUNCS(\
|
||||
posix_fallocate \
|
||||
prctl \
|
||||
proc_pidinfo \
|
||||
readlink \
|
||||
+ renameat \
|
||||
+ renameat2 \
|
||||
sched_yield \
|
||||
@ -152,7 +152,7 @@ index 46037546e6e..7a01e947e13 100644
|
||||
test_mailslot_name();
|
||||
}
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index 38c03d114ed..683bd67385d 100644
|
||||
index 98fcc075c45..6ffa1473199 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -36,6 +36,7 @@
|
||||
@ -215,7 +215,7 @@ index 38c03d114ed..683bd67385d 100644
|
||||
/* get space from the current directory data buffer, allocating a new one if necessary */
|
||||
static void *get_dir_data_space( struct dir_data *data, unsigned int size )
|
||||
{
|
||||
@@ -5922,6 +5954,116 @@ static void ignore_server_ioctl_struct_holes( ULONG code, const void *in_buffer,
|
||||
@@ -5936,6 +5968,116 @@ static void ignore_server_ioctl_struct_holes( ULONG code, const void *in_buffer,
|
||||
}
|
||||
|
||||
|
||||
@ -332,7 +332,7 @@ index 38c03d114ed..683bd67385d 100644
|
||||
/******************************************************************************
|
||||
* NtFsControlFile (NTDLL.@)
|
||||
*/
|
||||
@@ -6004,6 +6146,23 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
||||
@@ -6018,6 +6160,23 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
||||
break;
|
||||
}
|
||||
|
||||
@ -357,10 +357,10 @@ index 38c03d114ed..683bd67385d 100644
|
||||
TRACE("FSCTL_SET_SPARSE: Ignoring request\n");
|
||||
io->Information = 0;
|
||||
diff --git a/include/Makefile.in b/include/Makefile.in
|
||||
index 43a4fd98a42..99cab5a18f6 100644
|
||||
index eac1c2e0570..25b00f9e52b 100644
|
||||
--- a/include/Makefile.in
|
||||
+++ b/include/Makefile.in
|
||||
@@ -545,6 +545,7 @@ SOURCES = \
|
||||
@@ -546,6 +546,7 @@ SOURCES = \
|
||||
ntdef.h \
|
||||
ntdsapi.h \
|
||||
ntgdi.h \
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9d760a7c86cff579f870d78d0d5b4a6624b22324 Mon Sep 17 00:00:00 2001
|
||||
From c0f79c570c9b54d7ea42af6c9e8a2e25b83a6c01 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
|
||||
Date: Sun, 22 Nov 2020 22:37:33 -0700
|
||||
Subject: [PATCH] ntdll: Allow set_file_times_precise to work on reparse
|
||||
@ -11,11 +11,11 @@ Subject: [PATCH] ntdll: Allow set_file_times_precise to work on reparse
|
||||
3 files changed, 24 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 4b7d72063d8..0a15b7b92ff 100644
|
||||
index 2b68bdde1d2..bf9e8103606 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2224,7 +2224,8 @@ AC_CHECK_FUNCS(\
|
||||
symlink \
|
||||
@@ -2183,7 +2183,8 @@ AC_CHECK_FUNCS(\
|
||||
sigprocmask \
|
||||
sysinfo \
|
||||
tcdrain \
|
||||
- thr_kill2
|
||||
@ -65,7 +65,7 @@ index 490d5160761..2449ee54799 100644
|
||||
CloseHandle(handle);
|
||||
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index 2ee9288f500..2f0ec520288 100644
|
||||
index efde4dd41f1..d60a3c44b00 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -1728,6 +1728,14 @@ static int get_file_info( const char *path, struct stat *st, ULONG *attr )
|
||||
@ -98,20 +98,20 @@ index 2ee9288f500..2f0ec520288 100644
|
||||
#ifdef __APPLE__
|
||||
- if (!&futimens) return FALSE;
|
||||
+ if (!&utimensat || !&futimens) return FALSE;
|
||||
#endif
|
||||
- if (futimens( fd, tv ) == -1) *status = errno_to_status( errno );
|
||||
- else *status = STATUS_SUCCESS;
|
||||
+#endif
|
||||
+#if defined(HAVE_UTIMENSAT)
|
||||
+ /* futimens does not work on O_PATH|O_NOFOLLOW (O_SYMLINK) file descriptors, so if fd is for a
|
||||
+ * symlink then use utimensat with an empty path (.) and do not follow the link. */
|
||||
+ if (utimensat(fd, ".", tv, AT_SYMLINK_NOFOLLOW) == 0) *status = STATUS_SUCCESS;
|
||||
+ else
|
||||
+#endif
|
||||
#endif
|
||||
- if (futimens( fd, tv ) == -1) *status = errno_to_status( errno );
|
||||
- else *status = STATUS_SUCCESS;
|
||||
+ if (futimens(fd, tv) == 0) *status = STATUS_SUCCESS;
|
||||
+ else *status = errno_to_status( errno );
|
||||
return TRUE;
|
||||
#else
|
||||
return FALSE;
|
||||
--
|
||||
2.30.2
|
||||
2.33.0
|
||||
|
||||
|
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "ed38d12833bb1957a915ac63128957dacf2bc245"
|
||||
echo "3660176e09bc02e71586b4cf42f58c9498481af6"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -128,7 +128,6 @@ patch_enable_all ()
|
||||
enable_imm32_message_on_focus="$1"
|
||||
enable_include_winsock="$1"
|
||||
enable_inseng_Implementation="$1"
|
||||
enable_iphlpapi_System_Ping="$1"
|
||||
enable_kernel32_CopyFileEx="$1"
|
||||
enable_kernel32_Debugger="$1"
|
||||
enable_kernel32_Job_Tests="$1"
|
||||
@ -424,9 +423,6 @@ patch_enable ()
|
||||
inseng-Implementation)
|
||||
enable_inseng_Implementation="$2"
|
||||
;;
|
||||
iphlpapi-System_Ping)
|
||||
enable_iphlpapi_System_Ping="$2"
|
||||
;;
|
||||
kernel32-CopyFileEx)
|
||||
enable_kernel32_CopyFileEx="$2"
|
||||
;;
|
||||
@ -2330,18 +2326,6 @@ if test "$enable_inseng_Implementation" -eq 1; then
|
||||
patch_apply inseng-Implementation/0001-inseng-Implement-CIF-reader-and-download-functions.patch
|
||||
fi
|
||||
|
||||
# Patchset iphlpapi-System_Ping
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#8332] Fallback to system ping command when CAP_NET_RAW is not available
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/iphlpapi/icmp.c
|
||||
# |
|
||||
if test "$enable_iphlpapi_System_Ping" -eq 1; then
|
||||
patch_apply iphlpapi-System_Ping/0001-iphlpapi-Fallback-to-system-ping-when-ICMP-permissio.patch
|
||||
fi
|
||||
|
||||
# Patchset kernel32-CopyFileEx
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -2447,18 +2431,23 @@ fi
|
||||
# | dlls/winegstreamer/wg_parser.c
|
||||
# |
|
||||
if test "$enable_mfplat_reverts" -eq 1; then
|
||||
patch_apply mfplat-reverts/0001-Revert-winegstreamer-Convert-the-Unix-library-to-the.patch
|
||||
patch_apply mfplat-reverts/0002-Revert-winegstreamer-Return-void-from-wg_parser_stre.patch
|
||||
patch_apply mfplat-reverts/0003-Revert-winegstreamer-Move-Unix-library-definitions-i.patch
|
||||
patch_apply mfplat-reverts/0004-Revert-winegstreamer-Remove-the-no-longer-used-start.patch
|
||||
patch_apply mfplat-reverts/0005-Revert-winegstreamer-Set-unlimited-buffering-using-a.patch
|
||||
patch_apply mfplat-reverts/0006-Revert-winegstreamer-Initialize-GStreamer-in-wg_pars.patch
|
||||
patch_apply mfplat-reverts/0007-Revert-winegstreamer-Use-a-single-wg_parser_create-e.patch
|
||||
patch_apply mfplat-reverts/0008-Revert-winegstreamer-Fix-return-code-in-init_gst-fai.patch
|
||||
patch_apply mfplat-reverts/0009-Revert-winegstreamer-Allocate-source-media-buffers-i.patch
|
||||
patch_apply mfplat-reverts/0010-Revert-winegstreamer-Duplicate-source-shutdown-path-.patch
|
||||
patch_apply mfplat-reverts/0011-Revert-winegstreamer-Properly-clean-up-from-failure-.patch
|
||||
patch_apply mfplat-reverts/0012-Revert-winegstreamer-Factor-out-more-of-the-init_gst.patch
|
||||
patch_apply mfplat-reverts/0001-Revert-winegstreamer-Trace-the-unfiltered-caps-in-si.patch
|
||||
patch_apply mfplat-reverts/0002-Revert-winegstreamer-Avoid-seeking-past-the-end-of-a.patch
|
||||
patch_apply mfplat-reverts/0003-Revert-winegstreamer-Avoid-passing-a-NULL-buffer-to-.patch
|
||||
patch_apply mfplat-reverts/0004-Revert-winegstreamer-Use-array_reserve-to-reallocate.patch
|
||||
patch_apply mfplat-reverts/0005-Revert-winegstreamer-Handle-zero-length-reads-in-src.patch
|
||||
patch_apply mfplat-reverts/0006-Revert-winegstreamer-Convert-the-Unix-library-to-the.patch
|
||||
patch_apply mfplat-reverts/0007-Revert-winegstreamer-Return-void-from-wg_parser_stre.patch
|
||||
patch_apply mfplat-reverts/0008-Revert-winegstreamer-Move-Unix-library-definitions-i.patch
|
||||
patch_apply mfplat-reverts/0009-Revert-winegstreamer-Remove-the-no-longer-used-start.patch
|
||||
patch_apply mfplat-reverts/0010-Revert-winegstreamer-Set-unlimited-buffering-using-a.patch
|
||||
patch_apply mfplat-reverts/0011-Revert-winegstreamer-Initialize-GStreamer-in-wg_pars.patch
|
||||
patch_apply mfplat-reverts/0012-Revert-winegstreamer-Use-a-single-wg_parser_create-e.patch
|
||||
patch_apply mfplat-reverts/0013-Revert-winegstreamer-Fix-return-code-in-init_gst-fai.patch
|
||||
patch_apply mfplat-reverts/0014-Revert-winegstreamer-Allocate-source-media-buffers-i.patch
|
||||
patch_apply mfplat-reverts/0015-Revert-winegstreamer-Duplicate-source-shutdown-path-.patch
|
||||
patch_apply mfplat-reverts/0016-Revert-winegstreamer-Properly-clean-up-from-failure-.patch
|
||||
patch_apply mfplat-reverts/0017-Revert-winegstreamer-Factor-out-more-of-the-init_gst.patch
|
||||
fi
|
||||
|
||||
# Patchset mfplat-streaming-support
|
||||
|
@ -1 +1 @@
|
||||
ed38d12833bb1957a915ac63128957dacf2bc245
|
||||
3660176e09bc02e71586b4cf42f58c9498481af6
|
||||
|
Loading…
Reference in New Issue
Block a user