فهرست منبع

musl: fix getopt optional argument processing

Signed-off-by: Felix Fietkau <[email protected]>

SVN-Revision: 43009
Felix Fietkau 11 سال پیش
والد
کامیت
4d5218e083
1فایلهای تغییر یافته به همراه20 افزوده شده و 0 حذف شده
  1. 20 0
      toolchain/musl/patches/110-getopt_optional_argument_fix.patch

+ 20 - 0
toolchain/musl/patches/110-getopt_optional_argument_fix.patch

@@ -0,0 +1,20 @@
+--- a/src/misc/getopt.c
++++ b/src/misc/getopt.c
+@@ -55,7 +55,9 @@ int getopt(int argc, char * const argv[]
+ 		return '?';
+ 	}
+ 	if (optstring[i+1] == ':') {
++		if (optstring[i+2] == ':') optarg = 0;
+ 		if (optind >= argc) {
++			if (optstring[i+2] == ':') return c;
+ 			if (optstring[0] == ':') return ':';
+ 			if (opterr) {
+ 				write(2, argv[0], strlen(argv[0]));
+@@ -65,7 +67,6 @@ int getopt(int argc, char * const argv[]
+ 			}
+ 			return '?';
+ 		}
+-		if (optstring[i+2] == ':') optarg = 0;
+ 		if (optstring[i+2] != ':' || optpos) {
+ 			optarg = argv[optind++] + optpos;
+ 			optpos = 0;