From 40d46934d0847af6a8f2e10589d1b519e6bd3386 Mon Sep 17 00:00:00 2001 From: Mattias Bolte Date: Thu, 20 Aug 2009 13:59:07 +0200 Subject: [PATCH] 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 --- src/phyp/phyp_driver.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index bee17d0fa2..31001440c2 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -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."));