[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