提交 04323fbc 编写于 作者: G Guido Günther

virBufferEscapeShell: Emit quotes for the empty string

Make the empty string return '' to match cmdEcho's behavior.
上级 dad15a2e
......@@ -507,15 +507,20 @@ virBufferEscapeShell(virBufferPtr buf, const char *str)
return;
/* Only quote if str includes shell metacharacters. */
if (!strpbrk(str, "\r\t\n !\"#$&'()*;<>?[\\]^`{|}~")) {
if (*str && !strpbrk(str, "\r\t\n !\"#$&'()*;<>?[\\]^`{|}~")) {
virBufferAdd(buf, str, -1);
return;
}
len = strlen(str);
if (xalloc_oversized(4, len) ||
VIR_ALLOC_N(escaped, 4 * len + 3) < 0) {
virBufferSetError(buf);
if (*str) {
len = strlen(str);
if (xalloc_oversized(4, len) ||
VIR_ALLOC_N(escaped, 4 * len + 3) < 0) {
virBufferSetError(buf);
return;
}
} else {
virBufferAdd(buf, "''", 2);
return;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册