[llvm] [llvm] Validate Parent object before dereference (PR #157460)
Daniel Kuts via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 9 01:23:57 PDT 2025
https://github.com/apach301 updated https://github.com/llvm/llvm-project/pull/157460
>From 2894721aa05bbef0b9e5642e0e0c85045aac7446 Mon Sep 17 00:00:00 2001
From: Daniil Kutz <kutz at ispras.ru>
Date: Mon, 8 Sep 2025 16:10:32 +0300
Subject: [PATCH 1/2] [llvm] Validate Parent object before dereference
---
llvm/lib/Object/Archive.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index 92f31c909efd4..c3111ebe0f525 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/lib/Object/Archive.cpp
@@ -472,10 +472,11 @@ Archive::Child::Child(const Archive *Parent, const char *Start, Error *Err)
return;
}
+ assert(Parent && "Parent can't be nullptr if Start is not a nullptr");
+
Header = Parent->createArchiveMemberHeader(
Start,
- Parent ? Parent->getData().size() - (Start - Parent->getData().data())
- : 0,
+ Parent->getData().size() - (Start - Parent->getData().data()),
Err);
// If we are pointed to real data, Start is not a nullptr, then there must be
>From 29d1ade943b097a0bafab520b6588eeeed6dd106 Mon Sep 17 00:00:00 2001
From: Daniil Kutz <kutz at ispras.ru>
Date: Tue, 9 Sep 2025 11:23:41 +0300
Subject: [PATCH 2/2] Fix linter error
---
llvm/lib/Object/Archive.cpp | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index c3111ebe0f525..ad77dc93b494a 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/lib/Object/Archive.cpp
@@ -475,8 +475,7 @@ Archive::Child::Child(const Archive *Parent, const char *Start, Error *Err)
assert(Parent && "Parent can't be nullptr if Start is not a nullptr");
Header = Parent->createArchiveMemberHeader(
- Start,
- Parent->getData().size() - (Start - Parent->getData().data()),
+ Start, Parent->getData().size() - (Start - Parent->getData().data()),
Err);
// If we are pointed to real data, Start is not a nullptr, then there must be
More information about the llvm-commits
mailing list