Commit 00a4fa1b authored by Tudor Bosman's avatar Tudor Bosman Committed by dcsommer

Do not barf on invalid ELF files

Summary: The Haskell runtime does magic, and loads an ET_REL file directly.

Test Plan: ran it

Reviewed By: jon.coens@fb.com

Subscribers: njormrod, rkroll

FB internal diff: D1566853

Tasks: 4401996

@override-unit-failures
parent 45c8738b
......@@ -49,10 +49,9 @@ std::shared_ptr<ElfFile> SignalSafeElfCache::getFile(StringPiece p) {
const char* msg = "";
int r = f->openNoThrow(path.data(), true, &msg);
if (r == ElfFile::kSystemError) {
if (r != ElfFile::kSuccess) {
return nullptr;
}
FOLLY_SAFE_CHECK(r == ElfFile::kSuccess, msg);
map_[path] = n;
return f;
......@@ -79,10 +78,9 @@ std::shared_ptr<ElfFile> ElfCache::getFile(StringPiece p) {
// No negative caching
const char* msg = "";
int r = entry->file.openNoThrow(path.c_str(), true, &msg);
if (r == ElfFile::kSystemError) {
if (r != ElfFile::kSuccess) {
return nullptr;
}
FOLLY_SAFE_CHECK(r == ElfFile::kSuccess, msg);
if (files_.size() == capacity_) {
auto& e = lruList_.front();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment