From d6598c46383033ecc1cf9af65861bc526ea5256f Mon Sep 17 00:00:00 2001
From: Steve Muir <smuir@cs.princeton.edu>
Date: Fri, 2 Dec 2005 19:18:57 +0000
Subject: [PATCH] Fix error handling for get_rspec

---
 python/vserverimpl.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/python/vserverimpl.c b/python/vserverimpl.c
index 7a90cf0..00c8980 100644
--- a/python/vserverimpl.c
+++ b/python/vserverimpl.c
@@ -54,11 +54,17 @@ get_rspec(PyObject *resources, rspec_t *rspec)
       PyErr_SetString(PyExc_TypeError, "invalid rspec");
       return -1;
     }
-  if ((cpu_share = PyMapping_GetItemString(resources, "nm_cpu_share")) &&
-      (cpu_share = PyNumber_Int(cpu_share)))
-    rspec->cpu_share = PyInt_AsLong(cpu_share);
+  if ((cpu_share = PyMapping_GetItemString(resources, "nm_cpu_share")))
+    {
+      if (PyInt_Check(cpu_share))
+	{
+	  rspec->cpu_share = PyInt_AS_LONG(cpu_share);
+	  return 0;
+	}
+      PyErr_SetString(PyExc_TypeError, "nm_cpu_share not an integer");
+    }
 
-  return 0;
+  return -1;
 }
 
 /*
-- 
2.47.0