path_max.diff: replace with upstream commit
backport upstream commit 7c54988b1b3b9eb4d2f3650c1ba5ffe97673ca92
This commit is contained in:
parent
1f2103c875
commit
0640e8a754
3
debian/changelog
vendored
3
debian/changelog
vendored
@ -3,6 +3,9 @@ qt6-base (6.2.2+dfsg-4) UNRELEASED; urgency=medium
|
||||
[ Pino Toscano ]
|
||||
* Backport upstream commit 06e7b5168e269f913f03ecb9d77fc82db4d9dfd6 to enable
|
||||
LFS on Hurd; patch upstream_Hurd-enable-XOPEN-largefile-APIs.patch.
|
||||
* Replace patch path_max.diff with upstream commit
|
||||
7c54988b1b3b9eb4d2f3650c1ba5ffe97673ca92; patch
|
||||
upstream_Avoid-a-stack-buffer-when-not-needed.patch.
|
||||
|
||||
-- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org> Thu, 10 Feb 2022 07:33:31 +0100
|
||||
|
||||
|
21
debian/patches/path_max.diff
vendored
21
debian/patches/path_max.diff
vendored
@ -1,21 +0,0 @@
|
||||
Author: Pino Toscano <toscano.pino@tiscali.it>
|
||||
Description: Avoid unconditional PATH_MAX usage
|
||||
Use a "safe" size in case PATH_MAX is not defined; in the end, this should not
|
||||
be used, as a allocating realpath() will be used instead.
|
||||
Forwarded: no
|
||||
Last-Update: 2020-04-19
|
||||
|
||||
--- a/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
@@ -689,7 +689,11 @@ QFileSystemEntry QFileSystemEngine::cano
|
||||
Q_UNUSED(data);
|
||||
return QFileSystemEntry(slowCanonicalized(absoluteName(entry).filePath()));
|
||||
#else
|
||||
+#ifdef PATH_MAX
|
||||
char stack_result[PATH_MAX+1];
|
||||
+#else
|
||||
+ char stack_result[4096+1];
|
||||
+#endif
|
||||
char *resolved_name = nullptr;
|
||||
# if defined(Q_OS_DARWIN) || defined(Q_OS_ANDROID)
|
||||
// On some Android and macOS versions, realpath() will return a path even if
|
2
debian/patches/series
vendored
2
debian/patches/series
vendored
@ -5,7 +5,7 @@ upstream_QStorageInfo-limit-Linux-only-code-with-Q_OS_LINUX.patch
|
||||
upstream_CMake-add-support-for-GNU-Hurd.patch
|
||||
upstream_QProcess-Unix-fallback-on-_POSIX_PIPE_BUF-w-missing-.patch
|
||||
upstream_Hurd-enable-XOPEN-largefile-APIs.patch
|
||||
upstream_Avoid-a-stack-buffer-when-not-needed.patch
|
||||
|
||||
# Debian specific
|
||||
remove_privacy_breaches.diff
|
||||
path_max.diff
|
||||
|
47
debian/patches/upstream_Avoid-a-stack-buffer-when-not-needed.patch
vendored
Normal file
47
debian/patches/upstream_Avoid-a-stack-buffer-when-not-needed.patch
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
From 7c54988b1b3b9eb4d2f3650c1ba5ffe97673ca92 Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <toscano.pino@tiscali.it>
|
||||
Date: Thu, 10 Feb 2022 08:26:11 +0100
|
||||
Subject: [PATCH] Avoid a stack buffer when not needed
|
||||
|
||||
Allocate a PATH_MAX-sized buffer on stack only in case we are not using
|
||||
realpath(X, null), i.e. on platforms with older POSIX versions, macOS,
|
||||
or Android.
|
||||
|
||||
This fixes the build on platforms that do not have PATH_MAX (e.g.
|
||||
GNU/Hurd), and it provides a minor optimization on realpath(X, null)
|
||||
platforms.
|
||||
|
||||
Change-Id: Icd92a1b15ec18c5eef8113408e9610dfac774101
|
||||
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
||||
---
|
||||
src/corelib/io/qfilesystemengine_unix.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
index 6e8229daec..fb66d47d38 100644
|
||||
--- a/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
@@ -686,7 +686,9 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
|
||||
Q_UNUSED(data);
|
||||
return QFileSystemEntry(slowCanonicalized(absoluteName(entry).filePath()));
|
||||
#else
|
||||
+# if defined(Q_OS_DARWIN) || defined(Q_OS_ANDROID) || _POSIX_VERSION < 200801L
|
||||
char stack_result[PATH_MAX+1];
|
||||
+# endif
|
||||
char *resolved_name = nullptr;
|
||||
# if defined(Q_OS_DARWIN) || defined(Q_OS_ANDROID)
|
||||
// On some Android and macOS versions, realpath() will return a path even if
|
||||
@@ -714,8 +716,10 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
|
||||
data.knownFlagsMask |= QFileSystemMetaData::ExistsAttribute;
|
||||
data.entryFlags |= QFileSystemMetaData::ExistsAttribute;
|
||||
QString canonicalPath = QDir::cleanPath(QFile::decodeName(resolved_name));
|
||||
+# if defined(Q_OS_DARWIN) || defined(Q_OS_ANDROID) || _POSIX_VERSION < 200801L
|
||||
if (resolved_name != stack_result)
|
||||
free(resolved_name);
|
||||
+# endif
|
||||
return QFileSystemEntry(canonicalPath);
|
||||
} else if (errno == ENOENT || errno == ENOTDIR) { // file doesn't exist
|
||||
data.knownFlagsMask |= QFileSystemMetaData::ExistsAttribute;
|
||||
--
|
||||
2.34.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user