From 56f967db51fb3ba025bc00e7c3513549cf909da7 Mon Sep 17 00:00:00 2001 From: Victor Campos Date: Fri, 7 Oct 2022 15:37:42 +0100 Subject: [PATCH] [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 --- llvm/lib/Object/Archive.cpp | 7 +++++-- 1 file 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 -- 2.7.4