[ 2967265 ] code cleanup in sfcclient
diff --git a/ChangeLog b/ChangeLog
index 9e7a748..e8450ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-25  Narasimha Sharoff  <nsharoff@us.ibm.com>
+
+	* frontend/sfcc/sfcclient.c:
+	[ 2967265 ] code cleanup in sfcclient
+	(patch by Klaus Kaempf)
+
 2011-04-07  Chris Buccella  <buccella@linux.vnet.ibm.com>
 
 	* backend/cimxml/grammar.c:
diff --git a/NEWS b/NEWS
index cf0a070..2e3e90d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,10 @@
 Small Footprint CIM Client Library NEWS
 
+Changes in 2.2.3
+================
+Bugs:
+- 2967265: Code cleanup in frontend/sfcc/sfcclient.c
+
 Changes in 2.2.2
 ================
 
diff --git a/frontend/sfcc/sfcclient.c b/frontend/sfcc/sfcclient.c
index 89736ad..2eed047 100644
--- a/frontend/sfcc/sfcclient.c
+++ b/frontend/sfcc/sfcclient.c
@@ -215,12 +215,14 @@
 
 char * value2Chars (CMPIType type, CMPIValue *value)
 {
-   char str[2048], *p;
+#define SBUFLEN 32
+   char str[SBUFLEN], *p;
    unsigned int size;
    CMPIString *cStr;
 
    str[0]=0;
    if (type & CMPI_ARRAY) {
+	fprintf(stderr, "*** value2Chars not implemented for Array *** ");
    }
    else if (type & CMPI_ENC) {
 
@@ -283,29 +285,29 @@
 
       switch (type) {
       case CMPI_uint8:
-         sprintf(str, "%u", value->uint8);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%u", value->uint8);
+         break;
       case CMPI_sint8:
-         sprintf(str, "%d", value->sint8);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%d", value->sint8);
+         break;
       case CMPI_uint16:
-         sprintf(str, "%u", value->uint16);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%u", value->uint16);
+         break;
       case CMPI_sint16:
-         sprintf(str, "%d", value->sint16);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%d", value->sint16);
+         break;
       case CMPI_uint32:
-         sprintf(str, "%lu", value->uint32);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%lu", value->uint32);
+         break;
       case CMPI_sint32:
-         sprintf(str, "%ld", value->sint32);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%ld", value->sint32);
+         break;
       case CMPI_uint64:
-         sprintf(str, "%llu", value->uint64);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%llu", value->uint64);
+         break;
       case CMPI_sint64:
-         sprintf(str, "%lld", value->sint64);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%lld", value->sint64);
+         break;
       }
 
    }
@@ -313,13 +315,14 @@
 
       switch (type) {
       case CMPI_real32:
-         sprintf(str, "%g", value->real32);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%g", value->real32);
+         break;
       case CMPI_real64:
-         sprintf(str, "%g", value->real64);
-         return strdup(str);
+         snprintf(str, SBUFLEN, "%g", value->real64);
+         break;
       }
 
    }
+#undef SBUFLEN
    return strdup(str);
 }