[PATCH v2 1/2] rtld: Fix handling of '--' option
Henrik Lindström
henrik@lxm.se
Fri Jul 26 10:33:50 GMT 2024
It always resulted in the error `unrecognized option '--'` previously.
---
elf/rtld.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/elf/rtld.c b/elf/rtld.c
index bfdf632e77..7b982c5fe5 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -1501,12 +1501,16 @@ dl_main (const ElfW(Phdr) *phdr,
_dl_version ();
else if (_dl_argv[1][0] == '-' && _dl_argv[1][1] == '-')
{
- if (_dl_argv[1][1] == '\0')
- /* End of option list. */
- break;
- else
- /* Unrecognized option. */
- _dl_usage (ld_so_name, _dl_argv[1]);
+ if (_dl_argv[1][2] == '\0')
+ {
+ /* End of option list. */
+ --_dl_argc;
+ ++_dl_argv;
+ break;
+ }
+ else
+ /* Unrecognized option. */
+ _dl_usage (ld_so_name, _dl_argv[1]);
}
else
break;
--
2.39.2
More information about the Libc-alpha
mailing list