[llvm] Add llvm-extract-bundle-entry to extend llvm-objcopy (PR #169386)

David Salinas via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 9 10:30:41 PDT 2026


================
@@ -219,24 +219,38 @@ Error object::extractOffloadBundleFatBinary(
   return Error::success();
 }
 
-Error object::extractCodeObject(const ObjectFile &Source, int64_t Offset,
-                                int64_t Size, StringRef OutputFileName) {
+Error object::extractCodeObject(const ObjectFile &Source, size_t Offset,
+                                size_t Size, StringRef OutputFileName) {
   Expected<std::unique_ptr<FileOutputBuffer>> BufferOrErr =
       FileOutputBuffer::create(OutputFileName, Size);
 
-  if (!BufferOrErr)
-    return BufferOrErr.takeError();
+  if (Error Err = BufferOrErr.takeError())
+    return Err;
 
   Expected<MemoryBufferRef> InputBuffOrErr = Source.getMemoryBufferRef();
   if (Error Err = InputBuffOrErr.takeError())
-    return Err;
+    return createFileError(OutputFileName, std::move(Err));
+
+  if (Size > InputBuffOrErr->getBufferSize())
+    return createStringError("size in URI(%llu) is larger than source (%llu)",
+                             Size, InputBuffOrErr->getBufferSize());
+
+  if (Offset > InputBuffOrErr->getBufferSize())
+    return createStringError(
+        "offset in URI (%llu) is beyond the size of the source (%llu)", Offset,
+        InputBuffOrErr->getBufferSize());
+
+  if (Offset + Size > InputBuffOrErr->getBufferSize())
----------------
david-salinas wrote:

yup, I can add a check for that too.

https://github.com/llvm/llvm-project/pull/169386


More information about the llvm-commits mailing list