aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/Archive.cpp
diff options
context:
space:
mode:
authorVictor Campos <victor.campos@arm.com>2022-10-07 15:37:42 +0100
committerVictor Campos <victor.campos@arm.com>2022-10-28 13:14:52 +0100
commit56f967db51fb3ba025bc00e7c3513549cf909da7 (patch)
tree23ef5d75e4986ae068d0128093e3ea3641862ca2 /llvm/lib/Object/Archive.cpp
parent3ac17449cf988bfcde804a4cc532420ed1657595 (diff)
downloadllvm-56f967db51fb3ba025bc00e7c3513549cf909da7.zip
llvm-56f967db51fb3ba025bc00e7c3513549cf909da7.tar.gz
llvm-56f967db51fb3ba025bc00e7c3513549cf909da7.tar.bz2
[Object] Prevent null pointer dereference in BigArchiveMemberHeader
The pointer argument Err from BigArchiveMemberHeader's constructor can be null. This pointer was dereferenced without any null checks. This patch adds a check to avoid a null dereference. Reviewed By: brenoguim Differential Revision: https://reviews.llvm.org/D135449
Diffstat (limited to 'llvm/lib/Object/Archive.cpp')
-rw-r--r--llvm/lib/Object/Archive.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index 1dffe00..9c0f643 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/lib/Object/Archive.cpp
@@ -136,8 +136,11 @@ BigArchiveMemberHeader::BigArchiveMemberHeader(const Archive *Parent,
return;
ErrorAsOutParameter ErrAsOutParam(Err);
- if (Size < getSizeOf())
- *Err = createMemberHeaderParseError(this, RawHeaderPtr, Size);
+ if (Size < getSizeOf()) {
+ Error SubErr = createMemberHeaderParseError(this, RawHeaderPtr, Size);
+ if (Err)
+ *Err = std::move(SubErr);
+ }
}
// This gets the raw name from the ArMemHdr->Name field and checks that it is