From cdf7a40d9c63ad77f9e601e82d3f3c50a6f60598 Mon Sep 17 00:00:00 2001 From: Matthias Bolte Date: Fri, 6 Nov 2009 02:33:20 +0100 Subject: [PATCH] phyp: Check for exit_status < 0 before parsing the result --- src/phyp/phyp_driver.c | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index ab5af17e4b..1529c24819 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -508,7 +508,7 @@ phypGetLparNAME(LIBSSH2_SESSION * session, const char *managed_system, ret = phypExec(session, cmd, &exit_status, conn); - if (ret == NULL) + if (exit_status < 0 || ret == NULL) goto err; char *char_ptr = strchr(ret, '\n'); @@ -516,9 +516,6 @@ phypGetLparNAME(LIBSSH2_SESSION * session, const char *managed_system, if (char_ptr) *char_ptr = '\0'; - if (exit_status < 0 || ret == NULL) - goto err; - VIR_FREE(cmd); return ret; @@ -593,16 +590,13 @@ phypGetLparMem(virConnectPtr conn, const char *managed_system, int lpar_id, ret = phypExec(session, cmd, &exit_status, conn); - if (ret == NULL) + if (exit_status < 0 || ret == NULL) goto err; - char *mem_char_ptr = strchr(ret, '\n'); - - if (mem_char_ptr) - *mem_char_ptr = '\0'; + char_ptr = strchr(ret, '\n'); - if (exit_status < 0) - goto err; + if (char_ptr) + *char_ptr = '\0'; if (virStrToLong_i(ret, &char_ptr, 10, &memory) == -1) goto err; @@ -641,6 +635,7 @@ phypGetLparCPUGeneric(virConnectPtr conn, const char *managed_system, LIBSSH2_SESSION *session = connection_data->session; char *cmd = NULL; char *ret = NULL; + char *char_ptr; int exit_status = 0; int vcpus = 0; @@ -663,10 +658,10 @@ phypGetLparCPUGeneric(virConnectPtr conn, const char *managed_system, } ret = phypExec(session, cmd, &exit_status, conn); - if (ret == NULL) + if (exit_status < 0 || ret == NULL) goto err; - char *char_ptr = strchr(ret, '\n'); + char_ptr = strchr(ret, '\n'); if (char_ptr) *char_ptr = '\0'; @@ -674,9 +669,6 @@ phypGetLparCPUGeneric(virConnectPtr conn, const char *managed_system, if (virStrToLong_i(ret, &char_ptr, 10, &vcpus) == -1) goto err; - if (exit_status < 0) - goto err; - VIR_FREE(cmd); VIR_FREE(ret); return (unsigned long) vcpus; @@ -708,16 +700,13 @@ phypGetRemoteSlot(virConnectPtr conn, const char *managed_system, } ret = phypExec(session, cmd, &exit_status, conn); - if (ret == NULL) + if (exit_status < 0 || ret == NULL) goto err; - char *char_ptr2 = strchr(ret, '\n'); - - if (char_ptr2) - *char_ptr2 = '\0'; + char_ptr = strchr(ret, '\n'); - if (exit_status < 0) - goto err; + if (char_ptr) + *char_ptr = '\0'; if (virStrToLong_i(ret, &char_ptr, 10, &remote_slot) == -1) goto err; -- GitLab