busybox: 1.13.3 ash fix
authorPeter Korsgaard <jacmet@sunsite.dk>
Thu, 19 Mar 2009 08:29:55 +0000 (08:29 -0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Thu, 19 Mar 2009 08:29:55 +0000 (08:29 -0000)
package/busybox/busybox-1.13.3-ash.patch [new file with mode: 0644]

diff --git a/package/busybox/busybox-1.13.3-ash.patch b/package/busybox/busybox-1.13.3-ash.patch
new file mode 100644 (file)
index 0000000..761af28
--- /dev/null
@@ -0,0 +1,43 @@
+--- busybox-1.13.3/shell/ash.c Thu Feb 26 12:46:55 2009
++++ busybox-1.13.3-ash/shell/ash.c     Thu Mar 19 04:34:01 2009
+@@ -376,7 +376,6 @@
+ onsig(int signo)
+ {
+       gotsig[signo - 1] = 1;
+-      pendingsig = signo;
+       if (/* exsig || */ (signo == SIGINT && !trap[SIGINT])) {
+               if (!suppressint) {
+@@ -384,6 +383,8 @@
+                       raise_interrupt(); /* does not return */
+               }
+               intpending = 1;
++      } else {
++              pendingsig = signo;
+       }
+ }
+@@ -13692,15 +13693,20 @@
+       }
+  state3:
+       state = 4;
+-      if (minusc)
++      if (minusc) {
++              /* evalstring pushes parsefile stack.
++               * Ensure we don't falsely claim that 0 (stdin)
++               * is one of stacked source fds */
++              if (!sflag)
++                      g_parsefile->fd = -1;
+               evalstring(minusc, 0);
++      }
+       if (sflag || minusc == NULL) {
+ #if ENABLE_FEATURE_EDITING_SAVEHISTORY
+               if (iflag) {
+                       const char *hp = lookupvar("HISTFILE");
+-
+-                      if (hp != NULL)
++                      if (hp)
+                               line_input_state->hist_file = hp;
+               }
+ #endif