When checking if we need to escape a single quote we were looking at the
character after the quote instead of at the quote itself.
---
src/util/buf.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/util/buf.c b/src/util/buf.c
index 7dd9852..2d9499a 100644
--- a/src/util/buf.c
+++ b/src/util/buf.c
@@ -524,13 +524,13 @@ virBufferEscapeShell(virBufferPtr buf, const char *str)
*out++ = '\'';
while (*cur != 0) {
- *out++ = *cur++;
if (*cur == '\'') {
+ *out++ = '\'';
/* Replace literal ' with a close ', a \', and a open ' */
*out++ = '\\';
*out++ = '\'';
- *out++ = '\'';
}
+ *out++ = *cur++;
}
*out++ = '\'';
*out = 0;
--
1.7.6.3