[systemd-devel] [PATCH] fileio: also escape $ and ` when writing out env vars

Mantas Mikulėnas grawity at gmail.com
Sun Apr 14 04:54:09 PDT 2013


These are also considered special by sh and bash.
---
 src/shared/fileio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/shared/fileio.c b/src/shared/fileio.c
index 400a416..617afea 100644
--- a/src/shared/fileio.c
+++ b/src/shared/fileio.c
@@ -529,11 +529,11 @@ static void write_env_var(FILE *f, const char *v) {
         p++;
         fwrite(v, 1, p-v, f);
 
-        if (string_has_cc(p) || chars_intersect(p, WHITESPACE "\'\"\\")) {
+        if (string_has_cc(p) || chars_intersect(p, WHITESPACE "\'\"\\`$")) {
                 fputc('\"', f);
 
                 for (; *p; p++) {
-                        if (strchr("\'\"\\", *p))
+                        if (strchr("\'\"\\`$", *p))
                                 fputc('\\', f);
 
                         fputc(*p, f);
-- 
1.8.2.1.524.gf131fb6



More information about the systemd-devel mailing list