summaryrefslogtreecommitdiff
path: root/debian/patches/0167-fix-group-reading.diff
diff options
context:
space:
mode:
authorAna Beatriz Guerrero Lopez <ana@debian.org>2009-02-18 00:02:37 +0000
committerAna Beatriz Guerrero Lopez <ana@debian.org>2009-02-18 00:02:37 +0000
commit9f72af579a1d31c2ac9572b9b1fb94345ce5043a (patch)
treeb084fb0ff03bac29430b5f2213dd19b06614d2f2 /debian/patches/0167-fix-group-reading.diff
parent9a2df626010f7cbccdc812aec07172e0ebd2d128 (diff)
parent27f5b1f4b636b2efd947f3535f056714d32daa02 (diff)
downloadqt4-x11-9f72af579a1d31c2ac9572b9b1fb94345ce5043a.tar.gz
moved stuff from trunk/
Diffstat (limited to 'debian/patches/0167-fix-group-reading.diff')
-rw-r--r--debian/patches/0167-fix-group-reading.diff21
1 files changed, 9 insertions, 12 deletions
diff --git a/debian/patches/0167-fix-group-reading.diff b/debian/patches/0167-fix-group-reading.diff
index c7080d5..60e2efc 100644
--- a/debian/patches/0167-fix-group-reading.diff
+++ b/debian/patches/0167-fix-group-reading.diff
@@ -9,23 +9,20 @@ Try a bit harder.
--- a/src/corelib/io/qfsfileengine_unix.cpp
+++ b/src/corelib/io/qfsfileengine_unix.cpp
-@@ -829,9 +829,16 @@
- } else if (own == OwnerGroup) {
- struct group *gr = 0;
- #if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD)
-- buf.resize(sysconf(_SC_GETGR_R_SIZE_MAX));
+@@ -857,9 +857,13 @@
+ size_max = sysconf(_SC_GETGR_R_SIZE_MAX);
+ if (size_max == -1)
+ size_max = 1024;
+- buf.resize(size_max);
- struct group entry;
- getgrgid_r(ownerId(own), &entry, buf.data(), buf.size(), &gr);
-+ for (unsigned size = sysconf(_SC_GETGR_R_SIZE_MAX); size < 256000; size += size)
-+ {
-+ buf.resize(size);
++ for (;size_max < 256000; size_max += size_max) {
++ buf.resize(size_max);
+ struct group entry;
-+ // ERANGE indicates that the buffer was too small
-+ if (!getgrgid_r(ownerId(own), &entry, buf.data(), buf.size(), &gr)
-+ || errno != ERANGE)
++ if (!getgrgid_r(ownerId(own), &entry, buf.data(), buf.size(), &gr) || errno != ERANGE)
+ break;
-+ }
+
++ }
#else
gr = getgrgid(ownerId(own));
#endif