]> xenbits.xensource.com Git - libvirt.git/commitdiff
phyp: Check for exit_status < 0 before parsing the result
authorMatthias Bolte <matthias.bolte@googlemail.com>
Fri, 6 Nov 2009 01:33:20 +0000 (02:33 +0100)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Fri, 6 Nov 2009 20:28:49 +0000 (21:28 +0100)
src/phyp/phyp_driver.c

index ab5af17e4b4c885145e371aeccb591d7f4fb0e81..1529c24819090f47a38f68b52dd11749966016df 100644 (file)
@@ -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;