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 ]
|
[ Pino Toscano ]
|
||||||
* Backport upstream commit 06e7b5168e269f913f03ecb9d77fc82db4d9dfd6 to enable
|
* Backport upstream commit 06e7b5168e269f913f03ecb9d77fc82db4d9dfd6 to enable
|
||||||
LFS on Hurd; patch upstream_Hurd-enable-XOPEN-largefile-APIs.patch.
|
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
|
-- 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_CMake-add-support-for-GNU-Hurd.patch
|
||||||
upstream_QProcess-Unix-fallback-on-_POSIX_PIPE_BUF-w-missing-.patch
|
upstream_QProcess-Unix-fallback-on-_POSIX_PIPE_BUF-w-missing-.patch
|
||||||
upstream_Hurd-enable-XOPEN-largefile-APIs.patch
|
upstream_Hurd-enable-XOPEN-largefile-APIs.patch
|
||||||
|
upstream_Avoid-a-stack-buffer-when-not-needed.patch
|
||||||
|
|
||||||
# Debian specific
|
# Debian specific
|
||||||
remove_privacy_breaches.diff
|
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