Hi, On Fri, 2022-10-21 at 02:25 +0800, Yonggang Luo via Elfutils-devel wrote: > Signed-off-by: Yonggang Luo <luoyongg...@gmail.com> > --- > libelf/elf_begin.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c > index 6d31882e..d867cd6f 100644 > --- a/libelf/elf_begin.c > +++ b/libelf/elf_begin.c > @@ -1163,12 +1163,14 @@ elf_begin (int fildes, Elf_Cmd cmd, Elf *ref) > if (ref != NULL) > /* Make sure the descriptor is not suddenly going away. */ > rwlock_rdlock (ref->lock); > +#if defined(F_GETFD) > else if (unlikely (fcntl (fildes, F_GETFD) == -1 && errno == > EBADF)) > { > /* We cannot do anything productive without a file > descriptor. */ > __libelf_seterrno (ELF_E_INVALID_FILE); > return NULL; > } > +#endif
If you cannot check validity of fildes using fcntl, then shouldn't you at least check for fildes >= 0 ? Cheers, Mark