[git commit branch/1_26_stable] ash: error out if ASH_INTERNAL_GLOB is not selected on uClibc
Denys Vlasenko
vda.linux at googlemail.com
Sun Jan 1 12:01:04 UTC 2017
commit: https://git.busybox.net/busybox/commit/?id=18a7bee73670af792d25dac1835e75eeeef0a08e
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/1_26_stable
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
shell/ash.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/shell/ash.c b/shell/ash.c
index 8d8cc46..7d45b2c 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -51,6 +51,14 @@
# define ENABLE_ASH_INTERNAL_GLOB 1
#endif
+#if !ENABLE_ASH_INTERNAL_GLOB && defined(__UCLIBC__)
+# error uClibc glob() is buggy, use ASH_INTERNAL_GLOB.
+# error The bug is: for "$PWD"/<pattern> ash will escape e.g. dashes in "$PWD"
+# error with backslash, even ones which do not need to be: "/a-b" -> "/a\-b"
+# error glob() should unbackslash them and match. uClibc does not unbackslash,
+# error fails to match dirname, subsequently not expanding <pattern> in it.
+#endif
+
#if !ENABLE_ASH_INTERNAL_GLOB
# include <glob.h>
#endif
More information about the busybox-cvs
mailing list