aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2018-09-22 15:32:53 +0000
committerWarner Losh <imp@FreeBSD.org>2018-09-22 15:32:53 +0000
commit6577e8c44b5d5340bbf277265a18ac0a61cedfee (patch)
tree028d2e2f8cb6e7cde36ba670b2ec850adc795acc /sbin
parentb8fdf588079d7bb8f45e1b894801870db00e6887 (diff)
We don't need shell protection for when we're expanding matches.
Don't add it. This should fix when we do regepx matches against variables we've set and fix wifi bring up. PR: 231441 Approved by: re@ (kib) Differential Revision: https://reviews.freebsd.org/D17267
Notes
Notes: svn path=/head/; revision=338888
Diffstat (limited to 'sbin')
-rw-r--r--sbin/devd/devd.cc6
-rw-r--r--sbin/devd/devd.hh2
2 files changed, 4 insertions, 4 deletions
diff --git a/sbin/devd/devd.cc b/sbin/devd/devd.cc
index e81f718159b1..b2d08324511f 100644
--- a/sbin/devd/devd.cc
+++ b/sbin/devd/devd.cc
@@ -666,7 +666,7 @@ config::shell_quote(const string &s)
}
void
-config::expand_one(const char *&src, string &dst)
+config::expand_one(const char *&src, string &dst, bool is_shell)
{
int count;
string buffer;
@@ -705,7 +705,7 @@ config::expand_one(const char *&src, string &dst)
do {
buffer += *src++;
} while (is_id_char(*src));
- dst.append(shell_quote(get_variable(buffer)));
+ dst.append(is_shell ? shell_quote(get_variable(buffer)) : get_variable(buffer));
}
const string
@@ -731,7 +731,7 @@ config::expand_string(const char *src, const char *prepend, const char *append)
}
dst.append(src, var_at - src);
src = var_at;
- expand_one(src, dst);
+ expand_one(src, dst, prepend == NULL);
}
if (append != NULL)
diff --git a/sbin/devd/devd.hh b/sbin/devd/devd.hh
index 534c4d4c5a9d..d770da22226a 100644
--- a/sbin/devd/devd.hh
+++ b/sbin/devd/devd.hh
@@ -172,7 +172,7 @@ protected:
void sort_vector(std::vector<event_proc *> &);
void parse_one_file(const char *fn);
void parse_files_in_dir(const char *dirname);
- void expand_one(const char *&src, std::string &dst);
+ void expand_one(const char *&src, std::string &dst, bool is_shell);
std::string shell_quote(const std::string &s);
bool is_id_char(char) const;
bool chop_var(char *&buffer, char *&lhs, char *&rhs) const;