[1/7] elf_getaroff: Fix elf_getaroff error return value

Message ID 20250715042557.708628-1-amerey@redhat.com
State Committed
Delegated to: Mark Wielaard
Headers
Series [1/7] elf_getaroff: Fix elf_getaroff error return value |

Commit Message

Aaron Merey July 15, 2025, 4:25 a.m. UTC
  elf_getaroff currently returns ELF_C_NULL (0) to indicate that an error
occured (ex. the Elf descriptor is not associated with an archive).

However elf_getaroff is intended to return -1 if an error occurs.
eu-ar assumes -1 indicates an error and other libelf implementations
use -1 to indicate an error in elf_getaroff.

Replace ELF_C_NULL with -1 as elf_getaroff's error return value.

Signed-off-by: Aaron Merey <amerey@redhat.com>
---
 libelf/elf_getaroff.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Mark Wielaard July 15, 2025, 1 p.m. UTC | #1
Hi Aaron,

On Tue, 2025-07-15 at 00:25 -0400, Aaron Merey wrote:
> elf_getaroff currently returns ELF_C_NULL (0) to indicate that an error
> occured (ex. the Elf descriptor is not associated with an archive).
> 
> However elf_getaroff is intended to return -1 if an error occurs.
> eu-ar assumes -1 indicates an error and other libelf implementations
> use -1 to indicate an error in elf_getaroff.
> 
> Replace ELF_C_NULL with -1 as elf_getaroff's error return value.

I agree this makes sense given elf_getaroff returns an offset.

Thanks,

Mark
  

Patch

diff --git a/libelf/elf_getaroff.c b/libelf/elf_getaroff.c
index 5c102ad6..5737b350 100644
--- a/libelf/elf_getaroff.c
+++ b/libelf/elf_getaroff.c
@@ -43,7 +43,7 @@  elf_getaroff (Elf *elf)
 {
   /* Be gratious, the specs demand it.  */
   if (elf == NULL || elf->parent == NULL)
-    return ELF_C_NULL;
+    return -1;
 
   /* We can be sure the parent is an archive.  */
   Elf *parent = elf->parent;