]> xenbits.xensource.com Git - libvirt.git/commitdiff
Refactor shell escaping code
authorDaniel P. Berrange <berrange@redhat.com>
Sat, 27 Oct 2007 01:19:51 +0000 (01:19 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Sat, 27 Oct 2007 01:19:51 +0000 (01:19 +0000)
ChangeLog
src/qemu_driver.c

index b6f9cf65e641a9e336254a0f5c684bed953ff521..93f9262841b3ed68e5441c8798543d40bc44be1f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Oct 26 21:17:44 EST 2007 Daniel P. Berrange <berrange@redhat.com>
+
+       * src/qemu_driver.c: Refactor shell ecscaping function to reuse
+       for monitor escaping
+
 Fri Oct 26 21:14:44 EST 2007 Daniel P. Berrange <berrange@redhat.com>
 
        * src/qemu_conf.h, src/qemu_conf.c: Refactor device parsing code
index 5f4db589964f007323658330e6dd8b8e2c01df18..aa9745ab11a5f0972a1ee07c1dd8cc4e48b0f74a 100644 (file)
@@ -1912,7 +1912,7 @@ static int qemudDomainGetInfo(virDomainPtr dom,
 }
 
 
-static char *qemudEscapeShellArg(const char *in)
+static char *qemudEscape(const char *in, int shell)
 {
     int len = 0;
     int i, j;
@@ -1934,7 +1934,10 @@ static char *qemudEscapeShellArg(const char *in)
             len += 2;
             break;
         case '\'':
-            len += 5;
+            if (shell)
+                len += 5;
+            else
+                len += 1;
             break;
         default:
             len += 1;
@@ -1961,11 +1964,15 @@ static char *qemudEscapeShellArg(const char *in)
             out[j++] = in[i];
             break;
         case '\'':
-            out[j++] = '\'';
-            out[j++] = '\\';
-            out[j++] = '\\';
-            out[j++] = '\'';
-            out[j++] = '\'';
+            if (shell) {
+                out[j++] = '\'';
+                out[j++] = '\\';
+                out[j++] = '\\';
+                out[j++] = '\'';
+                out[j++] = '\'';
+            } else {
+                out[j++] = in[i];
+            }
             break;
         default:
             out[j++] = in[i];
@@ -1977,6 +1984,10 @@ static char *qemudEscapeShellArg(const char *in)
     return out;
 }
 
+static char *qemudEscapeShellArg(const char *in)
+{
+    return qemudEscape(in, 1);
+}
 
 #define QEMUD_SAVE_MAGIC "LibvirtQemudSave"
 #define QEMUD_SAVE_VERSION 1