qt-bugs@ issue : none Trolltech task ID : none yet bugs.kde.org number : None applied: no author: Dirk Mueller <mueller@kde.org> in big user environments, getgrgid_r() needs more memory than sysconf() returns. Try a bit harder. --- src/corelib/io/qfsfileengine_unix.cpp +++ src/corelib/io/qfsfileengine_unix.cpp @@ -845,9 +845,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)); - 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); + struct group entry; + // ERANGE indicates that the buffer was too small + if (!getgrgid_r(ownerId(own), &entry, buf.data(), buf.size(), &gr) + || errno != ERANGE) + break; + } + #else gr = getgrgid(ownerId(own)); #endif