aboutsummaryrefslogtreecommitdiff
path: root/sbin/devd
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2018-06-28 01:45:53 +0000
committerWarner Losh <imp@FreeBSD.org>2018-06-28 01:45:53 +0000
commit95cbefb3bfda0e6d10fc5a4d1a5646ad97a0a1b3 (patch)
tree1c78fa928672f3c4fd3a2224b9a0b0808d2ec23b /sbin/devd
parent54aa4076257f72b962d71b447bcd028de2b43a66 (diff)
Notes
Diffstat (limited to 'sbin/devd')
-rw-r--r--sbin/devd/devd.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sbin/devd/devd.cc b/sbin/devd/devd.cc
index bb7195cafee6f..9aa402494618f 100644
--- a/sbin/devd/devd.cc
+++ b/sbin/devd/devd.cc
@@ -640,6 +640,8 @@ string
config::shell_quote(const string &s)
{
string buffer;
+ const char *cs, *ce;
+ char c;
/*
* Enclose the string in $' ' with escapes for ' and / characters making
@@ -649,7 +651,10 @@ config::shell_quote(const string &s)
buffer.reserve(s.length() * 3 / 2);
buffer += '$';
buffer += '\'';
- for (const char &c : s) {
+ cs = s.c_str();
+ ce = cs + strlen(cs);
+ for (; cs < ce; cs++) {
+ c = *cs;
if (c == '\'' || c == '\\') {
buffer += '\\';
}