SOURCES: rpm.macros - %_clean_env: proper quoting rules

sparky sparky at pld-linux.org
Mon Nov 24 15:34:14 CET 2008


Author: sparky                       Date: Mon Nov 24 14:34:14 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- %_clean_env: proper quoting rules

---- Files affected:
SOURCES:
   rpm.macros (1.496 -> 1.497) 

---- Diffs:

================================================================
Index: SOURCES/rpm.macros
diff -u SOURCES/rpm.macros:1.496 SOURCES/rpm.macros:1.497
--- SOURCES/rpm.macros:1.496	Sun Nov 23 21:36:24 2008
+++ SOURCES/rpm.macros	Mon Nov 24 15:34:06 2008
@@ -133,14 +133,26 @@
 
 %_preserve_env	PATH HOME TMP TMPDIR
 
-%_clean_env		env -i %(awk 'BEGIN {
+%_clean_env		env -i %(awk -vq="'" -vqq="\\"'\\"" -vq2q="'\\"'" 'BEGIN {
 	split("%{?_preserve_env:%_preserve_env}", P);
 	for (i in P) {
 		p = P[i];
 		if (ENVIRON[p]) {
-			val = ENVIRON[p];
-			gsub(/[\\\\"$`]/, "\\\\\\&", val);
-			printf("\\"" p "=" val "\\" ");
+			split( ENVIRON[p], V, "" );
+			val = p "=";
+			for ( j = 1; j in V; j++ ) {
+				v = V[j];
+				if ( v == q )
+					v = qq;
+				else if ( v == "\\"" )
+					v = q2q;
+				else if ( v == "\\\\" )
+					v = "\\\\\\\\";
+				else
+					gsub( "[^a-zA-Z0-9/]", "\\"&\\"", v );
+				val = val "" v;
+			}
+			printf( val " " );
 		}
 	}
 }')
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/rpm.macros?r1=1.496&r2=1.497&f=u



More information about the pld-cvs-commit mailing list