File bash-3.2-longjmp.dif of Package bash.openSUSE_13.1_Update

--- execute_cmd.c
+++ execute_cmd.c	2008-04-28 01:38:19.000000000 +0000
@@ -25,6 +25,7 @@
 #endif /* _AIX && RISC6000 && !__GNUC__ */
 
 #include <stdio.h>
+#include <paths.h>
 #include "chartypes.h"
 #include "bashtypes.h"
 #if !defined (_MINIX) && defined (HAVE_SYS_FILE_H)
@@ -4764,6 +4765,23 @@ shell_execve (command, args, env)
   /* We have committed to attempting to execute the contents of this file
      as shell commands. */
 
+#if defined(BNC382214) && (BNC382214 == 1)
+  larray = strvec_len(args) + 1;
+  args = strvec_resize(args, larray + 1);
+
+  for (i = larray - 1; i; i--)
+    args[i] = args[i - 1];
+
+  args[0] = current_user.shell ? current_user.shell : savestring(_PATH_BSHELL);
+  args[1] = command;
+  args[larray] = (char *)0;
+
+  SETOSTYPE (0);		/* Some systems use for USG/POSIX semantics */
+  execve (args[0], args, env);
+  SETOSTYPE (1);
+
+  internal_error (_("%s: cannot execute: %s"), command, strerror (errno));
+#else
   initialize_subshell ();
 
   set_sigint_handler ();
@@ -4806,6 +4824,8 @@ shell_execve (command, args, env)
 
   longjmp (subshell_top_level, 1);
   /*NOTREACHED*/
+#endif
+  return (EX_NOEXEC);
 }
 
 static int
openSUSE Build Service is sponsored by