summaryrefslogtreecommitdiff
path: root/package/busybox/busybox-1.12.2-getopt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/busybox-1.12.2-getopt.patch')
-rw-r--r--package/busybox/busybox-1.12.2-getopt.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.12.2-getopt.patch b/package/busybox/busybox-1.12.2-getopt.patch
new file mode 100644
index 000000000..bdc8b9327
--- /dev/null
+++ b/package/busybox/busybox-1.12.2-getopt.patch
@@ -0,0 +1,22 @@
+--- busybox-1.12.2/libbb/getopt32.c Sun Nov 9 18:20:37 2008
++++ busybox-1.12.2-getopt/libbb/getopt32.c Wed Nov 12 23:03:33 2008
+@@ -515,6 +515,19 @@
+ }
+ }
+
++ /* In case getopt32 was already called:
++ * reset the libc getopt() function, which keeps internal state.
++ * run_nofork_applet_prime() does this, but we might end up here
++ * also via gunzip_main() -> gzip_main(). Play safe.
++ */
++#ifdef __GLIBC__
++ optind = 0;
++#else /* BSD style */
++ optind = 1;
++ /* optreset = 1; */
++#endif
++ /* optarg = NULL; opterr = 0; optopt = 0; - do we need this?? */
++
+ pargv = NULL;
+
+ /* Note: just "getopt() <= 0" will not work well for