From 3dba9ca9b593c2ee8ea71a76a48966e42c18bc56 Mon Sep 17 00:00:00 2001 From: Debian Qt/KDE Maintainers Date: Tue, 5 Feb 2013 21:52:29 +0000 Subject: [PATCH] QTBUG-14724_close_orphaned_file_descriptors_after_printing What happened: In QPdfBaseEnginePrivate::openPrintDevice() noone remembers the file descriptor opened by tempFile() which is a call to the cups library to cupsTempFile() Later in closePrintDevice the check for fd<0 fails, so no one closes the file descriptor. If you later remove the file, the descriptor is still open and cannot removed until you close the application. If you print 20 times and more during your application is running and you print out large files (complicate forms with a lot of elements produces files with 3-4 MByte) your temporary file can be full, but you don't see (with ls) files in it. Bug: https://bugreports.qt.nokia.com/browse/QTBUG-14724 Author: Georg Scherzer Gbp-Pq: Name QTBUG-14724_close_orphaned_file_descriptors_after_printing.patch --- src/gui/painting/qpdf.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp index 6cdee67fd..0aad4dee4 100644 --- a/src/gui/painting/qpdf.cpp +++ b/src/gui/painting/qpdf.cpp @@ -1686,6 +1686,7 @@ bool QPdfBaseEnginePrivate::openPrintDevice() cupsTempFile = ret.second; outDevice = new QFile(); static_cast(outDevice)->open(ret.first, QIODevice::WriteOnly); + fd = ret.first; #endif #ifndef QT_NO_LPR } else { -- 2.30.2