From d855afad443f4a4cb2f67fd126dfb66c502ff4d1 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Mon, 24 Nov 2014 14:46:32 +0200 Subject: [PATCH] ElfReader: Catch bad_alloc exception Might happen on file.readAll() for large elf files. Change-Id: Id338e647d2d0903d2071b5f35ffc7a00e6aca24d Reviewed-by: hjk --- src/libs/utils/elfreader.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/elfreader.cpp b/src/libs/utils/elfreader.cpp index bb980136499..0199fbd7aa1 100644 --- a/src/libs/utils/elfreader.cpp +++ b/src/libs/utils/elfreader.cpp @@ -34,6 +34,8 @@ #include #include +#include // std::bad_alloc + namespace Utils { quint16 getHalfWord(const unsigned char *&s, const ElfData &context) @@ -113,7 +115,11 @@ bool ElfMapper::map() ustart = file.map(0, fdlen); if (ustart == 0) { // Try reading the data into memory instead. - raw = file.readAll(); + try { + raw = file.readAll(); + } catch (std::bad_alloc &) { + return false; + } start = raw.constData(); fdlen = raw.size(); }