[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Less detailed error for ENOENT from execve
From: |
Kirill Elagin |
Subject: |
Less detailed error for ENOENT from execve |
Date: |
Sun, 9 Oct 2022 11:32:47 -0400 |
Hi,
I think the execute_cmd.c change here
(https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=1fff64acdc5709cdc213f0143f1b8169fdf68a39)
made things worse, not better. I don’t know what the original report
that prompted this change was though, but my impression is that the
error became much less detailed.
The problem with `ENOENT` error from `execve` is that it is ambiguous:
it will be returned in the case when the executable does not exist
_or_ when the requested interpreter does not exist. So, in the `else`
branch there is this chunk of logic that disambiguates them and
reports either “no such file” or “bad interpreter”. With this change,
`ENOENT` now has its own branch and hence that disambiguation logic is
never reached.
(I might be wrong, I don’t have bash 5.2 available to test, this is
purely based on my reading of the code.)
Cheers,
Kirill
- Less detailed error for ENOENT from execve,
Kirill Elagin <=