diff options
author | Andre de la Rocha <andre.rocha@qt.io> | 2018-01-18 18:43:25 +0100 |
---|---|---|
committer | Andre de la Rocha <andre.rocha@qt.io> | 2018-01-19 14:10:53 +0000 |
commit | e211ab76d766878b4dbe88901b9a7a4a70ce7332 (patch) | |
tree | 14c0a863842a47c436b02b8132b8b13fdb95d2aa /mkspecs | |
parent | dc742e9394c2796acce1317af7bb9fc304f820a8 (diff) | |
download | qtbase-e211ab76d766878b4dbe88901b9a7a4a70ce7332.tar.gz |
Handle OOM condition in the validation of plugin metadata
A large plugin dll (e.g., one with many MB of debug info) could cause
a 32-bit application to crash when the entire dll file could not fit
within the address space of the process. The code for validating a
plugin library and retrieving metadata from it first tried to map
the entire file in memory, which failed for large files, returning
NULL. In this case, the code tried then to read the entire file via
QFile::readAll(), which deep below caused a bad_alloc exception in
malloc, resulting in the termination of the application. This change
handles the case where the library could not be mapped into memory,
in spite of memory mapping being supported, by reporting the error
and returning false, making the plugin unavailable.
[ChangeLog][QtCore][QPluginLoader] Fixed a bug that would cause the
Qt plugin scanning system to allocate too much memory and possibly
crash the process.
Task-number: QTBUG-65197
Change-Id: I8c7235d86175c9fcd2b87fcb1151570da9b9ebe3
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'mkspecs')
0 files changed, 0 insertions, 0 deletions