chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a1c6506
)
fileio: also escape $ and ` when writing out env vars
author
Mantas Mikulėnas
<grawity@gmail.com>
Sun, 14 Apr 2013 11:54:09 +0000
(14:54 +0300)
committer
Zbigniew Jędrzejewski-Szmek
<zbyszek@in.waw.pl>
Wed, 17 Apr 2013 04:32:02 +0000
(
00:32
-0400)
These are also considered special by sh and bash.
src/shared/fileio.c
patch
|
blob
|
history
diff --git
a/src/shared/fileio.c
b/src/shared/fileio.c
index 400a416162639e164cabb3a0c08d184a6f3bc585..617afeace2bf0eb14930e4e60814b4326bc95ff3 100644
(file)
--- 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);
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++) {
fputc('\"', f);
for (; *p; p++) {
- if (strchr("\'\"\\", *p))
+ if (strchr("\'\"\\
`$
", *p))
fputc('\\', f);
fputc(*p, f);
fputc('\\', f);
fputc(*p, f);