Fix phypOpen() escape_specialcharacters

Matthias correctly points out that escape_specialcharaters() takes a
length, and since we are now malloc()'ing string in phypOpen instead of
making it a static array, we can't use sizeof(string) anymore.  Calculate
the proper strlen and then use that both to allocate the string and also
pass it to escape_specialcharacters().

Signed-off-by: Chris Lalancette <clalance@redhat.com>
This commit is contained in:
Mattias Bolte 2009-08-20 13:59:07 +02:00 committed by Chris Lalancette
parent 1aa1683377
commit 40d46934d0

View File

@ -66,7 +66,7 @@ phypOpen(virConnectPtr conn,
SSH_SESSION *session = NULL;
ConnectionData *connection_data = NULL;
char *string;
size_t len = 0;
uuid_dbPtr uuid_db = NULL;
if (!conn || !conn->uri)
@ -99,12 +99,14 @@ phypOpen(virConnectPtr conn,
goto failure;
}
if (VIR_ALLOC_N(string, strlen(conn->uri->path) + 1) < 0) {
len = strlen(conn->uri->path) + 1;
if (VIR_ALLOC_N(string, len) < 0) {
virReportOOMError(conn);
goto failure;
}
if (escape_specialcharacters(conn->uri->path, string, sizeof(string)) == -1) {
if (escape_specialcharacters(conn->uri->path, string, len) == -1) {
virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
_("Error parsing 'path'. Invalid characters."));