BUG#: 7988
authorkavita.gupta <kavita.gupta>
Mon, 13 Oct 2008 05:14:05 +0000 (05:14 +0000)
committerkavita.gupta <kavita.gupta>
Mon, 13 Oct 2008 05:14:05 +0000 (05:14 +0000)
TITLE: Some config properties are accepting negative values.

src/Pegasus/Config/DefaultPropertyOwner.cpp

index fedec2e2b90542cc223b415631d54bcbb3c1f53e..b83c68588936479d9f824822051fcad7307bfcf5 100644 (file)
@@ -41,6 +41,7 @@
 #include "DefaultPropertyOwner.h"
 #include "ConfigManager.h"
 #include <Pegasus/Common/AuditLogger.h>
+#include <Pegasus/Common/StringConversion.h>
 
 PEGASUS_USING_STD;
 
@@ -299,11 +300,18 @@ Boolean DefaultPropertyOwner::isValid(
     if (String::equalNoCase(name, "socketWriteTimeout") ||
         String::equalNoCase(name, "idleConnectionTimeout"))
     {
-        Uint32 timeoutValue;
-        char dummyChar;
-        int numConversions =
-            sscanf(value.getCString(), "%u%c", &timeoutValue, &dummyChar);
-        return ((timeoutValue != 0) && (numConversions == 1));
+        Uint64 v;
+        return 
+            StringConversion::decimalStringToUint64(value.getCString(), v) &&
+            StringConversion::checkUintBounds(v, CIMTYPE_UINT32) &&
+            (v != 0);
+    }
+    if (String::equalNoCase(name, "maxProviderProcesses"))
+    {
+        Uint64 v;
+        return 
+            StringConversion::decimalStringToUint64(value.getCString(), v) &&
+            StringConversion::checkUintBounds(v, CIMTYPE_UINT32);
     }
 #ifdef PEGASUS_ENABLE_AUDIT_LOGGER
     else if (String::equal(name, "enableAuditLog"))