File: revert-9c143ce52da11ec3d21a3491c3749841d3dc10f0.patch

package info (click to toggle)
busybox 1%3A1.37.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 23,684 kB
  • sloc: ansic: 190,169; sh: 10,414; cpp: 1,428; makefile: 1,005; asm: 798; yacc: 570; lex: 355; perl: 334; python: 112; awk: 29
file content (46 lines) | stat: -rw-r--r-- 1,506 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
From: Cyril Brulebois <kibi@debian.org>
Date: Fri, 29 Mar 2019 17:42:23 +0100
Subject: Revert 9c143ce52da11ec3d21a3491c3749841d3dc10f0 just to make sure the next patch can be applied
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -11477,17 +11477,9 @@
 		const char *p;
 		const char *q;
 
-		p = endofname(*ep);
-/* Used to have simple "p = strchrnul(*ep, '=')" here instead, but this
- * makes "export -p" to have output not suitable for "eval":
- * import os
- * os.environ["test-test"]="test"
- * if os.fork() == 0:
- *   os.execv("ash", [ 'ash', '-c', 'eval $(export -p); echo OK' ])  # fixes this
- * os.execv("ash", [ 'ash', '-c', 'env | grep test-test' ])
- */
+		p = strchrnul(*ep, '=');
 		q = nullstr;
-		if (*p == '=')
+		if (*p)
 			q = single_quote(++p);
 		out1fmt("%s%s%.*s%s\n", sep_prefix, sep, (int)(p - *ep), *ep, q);
 	}
@@ -14409,18 +14401,8 @@
 
 		initvar();
 		for (envp = environ; envp && *envp; envp++) {
-/* Used to have
- *			p = endofname(*envp);
- *			if (p != *envp && *p == '=') {
- * here to weed out badly-named variables, but this breaks
- * scenarios where people do want them passed to children:
- * import os
- * os.environ["test-test"]="test"
- * if os.fork() == 0:
- *   os.execv("ash", [ 'ash', '-c', 'eval $(export -p); echo OK' ])  # fixes this
- * os.execv("ash", [ 'ash', '-c', 'env | grep test-test' ])  # breaks this
- */
-			if (strchr(*envp, '=')) {
+			p = endofname(*envp);
+			if (p != *envp && *p == '=') {
 				setvareq(*envp, VEXPORT|VTEXTFIXED);
 			}
 		}