From e2be7290b1cd0e6061d7d0f982ac5da13ff1a685 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Sun, 10 Jun 2012 13:19:45 +0000
Subject: [PATCH] busybox: fix bad variable substitution on right hand side of
 I/O redirection, imported patch from upstream bug 5282

SVN-Revision: 32162
---
 package/busybox/Makefile                             |  2 +-
 .../patches/251-ash_fix-redir-substitution.patch     | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)
 create mode 100644 package/busybox/patches/251-ash_fix-redir-substitution.patch

diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index af27df071bc1..1d2d7b4fac16 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
 PKG_VERSION:=1.19.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
diff --git a/package/busybox/patches/251-ash_fix-redir-substitution.patch b/package/busybox/patches/251-ash_fix-redir-substitution.patch
new file mode 100644
index 000000000000..cb2ae94e04c2
--- /dev/null
+++ b/package/busybox/patches/251-ash_fix-redir-substitution.patch
@@ -0,0 +1,12 @@
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -6846,8 +6846,7 @@ evalvar(char *p, int flags, struct strli
+ 		patloc = expdest - (char *)stackblock();
+ 		if (NULL == subevalvar(p, /* varname: */ NULL, patloc, subtype,
+ 				startloc, varflags,
+-//TODO: | EXP_REDIR too? All other such places do it too
+-				/* quotes: */ flags & (EXP_FULL | EXP_CASE),
++				/* quotes: */ flags & (EXP_FULL | EXP_CASE | EXP_REDIR),
+ 				var_str_list)
+ 		) {
+ 			int amount = expdest - (
-- 
2.30.2