Refactor shell escaping code

This commit is contained in:
Daniel P. Berrange 2007-10-27 01:19:51 +00:00
parent eed1b17791
commit 97185033e5
2 changed files with 23 additions and 7 deletions

View File

@ -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

View 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