From 7ecabe03f1b650ab248dfa14b1cb6def827ab208 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Thu, 6 May 2021 06:34:07 +0200 Subject: [PATCH] msys2-runtime: Update --- ...th_conv-Try-to-handle-native-symlink.patch | 109 ++++++++++++++++++ msys2-runtime/PKGBUILD | 11 +- 2 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 msys2-runtime/0034-Revert-Cygwin-path_conv-Try-to-handle-native-symlink.patch diff --git a/msys2-runtime/0034-Revert-Cygwin-path_conv-Try-to-handle-native-symlink.patch b/msys2-runtime/0034-Revert-Cygwin-path_conv-Try-to-handle-native-symlink.patch new file mode 100644 index 00000000..2b51c1cf --- /dev/null +++ b/msys2-runtime/0034-Revert-Cygwin-path_conv-Try-to-handle-native-symlink.patch @@ -0,0 +1,109 @@ +From 0aaba50a63d1efdeb3bba4a48e7ac2e33c2578d0 Mon Sep 17 00:00:00 2001 +From: Christoph Reiter +Date: Wed, 5 May 2021 09:18:45 +0200 +Subject: [PATCH 34/N] Revert "Cygwin: path_conv: Try to handle native + symlinks more sanely" + +This reverts commit 517744ea36a28d8e1166f8e12b0d88ea9cd9aadc. +--- + winsup/cygwin/dcrt0.cc | 6 ----- + winsup/cygwin/globals.cc | 2 -- + winsup/cygwin/path.cc | 52 ---------------------------------------- + 3 files changed, 60 deletions(-) + +diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc +index 579158a..4683972 100644 +--- a/winsup/cygwin/dcrt0.cc ++++ b/winsup/cygwin/dcrt0.cc +@@ -742,12 +742,6 @@ init_windows_system_directory () + system_wow64_directory[system_wow64_directory_length++] = L'\\'; + system_wow64_directory[system_wow64_directory_length] = L'\0'; + } +- /* We need the Windows dir in path.cc. */ +- wcscpy (windows_directory, windows_system_directory); +- windows_directory_length = windows_system_directory_length - 1; +- windows_directory[windows_directory_length] = L'\0'; +- while (windows_directory[windows_directory_length - 1] != L'\\') +- windows_directory[--windows_directory_length] = L'\0'; + #endif /* __i386__ */ + } + } +diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc +index a729e70..67103f4 100644 +--- a/winsup/cygwin/globals.cc ++++ b/winsup/cygwin/globals.cc +@@ -26,8 +26,6 @@ UINT windows_system_directory_length; + #ifdef __i386__ + WCHAR system_wow64_directory[MAX_PATH]; + UINT system_wow64_directory_length; +-WCHAR windows_directory[MAX_PATH]; +-UINT windows_directory_length; + #endif /* __i386__ */ + WCHAR global_progname[NT_MAX_PATH]; + +diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc +index 4121628..561d1ac 100644 +--- a/winsup/cygwin/path.cc ++++ b/winsup/cygwin/path.cc +@@ -3341,58 +3341,6 @@ restart: + status = conv_hdl.get_finfo (h, fs.is_nfs ()); + if (NT_SUCCESS (status)) + fileattr = conv_hdl.get_dosattr (fs.is_nfs ()); +- +- /* For local paths, check if the inner path components contain +- native symlinks or junctions. Compare incoming path with +- path returned by NtQueryInformationFile(FileNameInformation). +- If they differ, bail out as if the file doesn't exist. This +- forces path_conv::check to backtrack inner path components. */ +- if (!fs.is_remote_drive ()) +- { +-#ifdef __i386__ +- /* On WOW64, ignore any potential problems if the path is inside +- the Windows dir to avoid false positives for stuff under +- File System Redirector control. */ +- if (wincap.is_wow64 ()) +- { +- static UNICODE_STRING wpath; +- UNICODE_STRING udpath; +- +- /* Create UNICODE_STRING for Windows dir. */ +- RtlInitCountedUnicodeString (&wpath, windows_directory, +- windows_directory_length * sizeof (WCHAR)); +- /* Create a UNICODE_STRING from incoming path, splitting +- off the leading "\\??\\" */ +- RtlInitCountedUnicodeString (&udpath, upath.Buffer + 4, +- upath.Length - 4 * sizeof (WCHAR)); +- /* Are we below Windows dir? Skip the check for inner +- symlinks. */ +- if (RtlEqualUnicodePathPrefix (&udpath, &wpath, TRUE)) +- goto skip_inner_syml_check; +- } +-#endif /* __i386__ */ +- PFILE_NAME_INFORMATION pfni; +- +- pfni = (PFILE_NAME_INFORMATION) tp.c_get (); +- if (NT_SUCCESS (NtQueryInformationFile (h, &io, pfni, NT_MAX_PATH, +- FileNameInformation))) +- { +- UNICODE_STRING npath; +- +- RtlInitCountedUnicodeString (&npath, pfni->FileName, +- pfni->FileNameLength); +- if (!RtlEqualUnicodePathSuffix (&upath, &npath, !!ci_flag)) +- { +- fileattr = INVALID_FILE_ATTRIBUTES; +- set_error (ENOENT); +- break; +- } +- } +-#ifdef __i386__ +- skip_inner_syml_check: +- ; +-#endif /* __i386__ */ +- } + } + if (!NT_SUCCESS (status)) + { +-- +2.31.1 + diff --git a/msys2-runtime/PKGBUILD b/msys2-runtime/PKGBUILD index 62e2c1e6..d136717b 100644 --- a/msys2-runtime/PKGBUILD +++ b/msys2-runtime/PKGBUILD @@ -4,7 +4,7 @@ pkgbase=msys2-runtime pkgname=('msys2-runtime' 'msys2-runtime-devel') pkgver=3.2.0 -pkgrel=5 +pkgrel=6 pkgdesc="Cygwin POSIX emulation engine" arch=('i686' 'x86_64') url="https://www.cygwin.com/" @@ -55,7 +55,8 @@ source=('msys2-runtime'::git://sourceware.org/git/newlib-cygwin.git#tag=cygwin-$ 0030-uname-limit-sysname-to-MSYS-or-MINGW.patch 0031-CI-give-the-cygwin-sync-job-explicit-write-permissio.patch 0032-Cygwin-path_conv-Try-to-handle-native-symlinks-more-.patch - 0033-Cygwin-console-Fix-race-issue-regarding-cons_master_.patch) + 0033-Cygwin-console-Fix-race-issue-regarding-cons_master_.patch + 0034-Revert-Cygwin-path_conv-Try-to-handle-native-symlink.patch) sha256sums=('SKIP' '605f3f31dcca983fad2659f2d8f3531217e3f133757b40b0977e6a17c406c147' '5d120d24ce55ef08bf459781610e32c4a8e5e0eac73971a60e80590c6432d940' @@ -89,7 +90,8 @@ sha256sums=('SKIP' '301422428472f693ad3a659b1279c969d5457eaab77be4dc0a389b2f5c5b6a55' 'acbf8e7fea8089d474a63d8e12fd68e13f33967911eb785895183619c4307092' 'ab78d325691fa6af631a73c3292537263b58a53eb0ab35c65d431a8536e8e12c' - '679c11a3c6f96aa99c7d6bf6529d7cd22fbb23b24a06196ab06a9dfec82355fe') + '679c11a3c6f96aa99c7d6bf6529d7cd22fbb23b24a06196ab06a9dfec82355fe' + '109e3b9fedfa8809e67fdd43cf73d55568016409654e51386073c5542dded8a0') # Helper macros to help make tasks easier # apply_patch_with_msg() { @@ -159,7 +161,8 @@ prepare() { 0030-uname-limit-sysname-to-MSYS-or-MINGW.patch \ 0031-CI-give-the-cygwin-sync-job-explicit-write-permissio.patch \ 0032-Cygwin-path_conv-Try-to-handle-native-symlinks-more-.patch \ - 0033-Cygwin-console-Fix-race-issue-regarding-cons_master_.patch + 0033-Cygwin-console-Fix-race-issue-regarding-cons_master_.patch \ + 0034-Revert-Cygwin-path_conv-Try-to-handle-native-symlink.patch } build() {