Merge branch 'master' of ssh://sblim.git.sourceforge.net/gitroot/sblim/sfcc
Conflicts:
ChangeLog
NEWS
diff --git a/ChangeLog b/ChangeLog
index 49f2981..3d55979 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,12 @@
[ 3286489 ] getInstance does not return key/value through XML
(patch originated by Josef Moellers)
+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:
@@ -55,6 +61,7 @@
* cimc/cimcclient.c
[ 3101151 ] SfcbLocal failed to connect due to hardcoded library path
+ (based on the patch by: Chris Poblete <Chris_Poblete@Dell.com>)
2011-02-22 Narasimha Sharoff <nsharoff@us.ibm.com>
diff --git a/NEWS b/NEWS
index 7b4d810..f2be3ed 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@
================
Bugs:
+- 2967265: Code cleanup in frontend/sfcc/sfcclient.c
- 3286489: getInstance does not return key/value through XML
Changes in 2.2.2
diff --git a/cimc/cimcclient.c b/cimc/cimcclient.c
index d520fc4..7ed10a3 100644
--- a/cimc/cimcclient.c
+++ b/cimc/cimcclient.c
@@ -25,6 +25,8 @@
#include <stdlib.h>
#include <dlfcn.h>
#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
/*
* Canonical CIM C API entry points
@@ -42,6 +44,7 @@
void *library;
InitCimcEnv init=NULL;
CIMCEnv *rv=NULL;
+ struct stat sbuf;
libName[LIBLEN]=0;
entry[ENTLEN]=0;
@@ -52,7 +55,7 @@
snprintf(*msg,ERRLEN,"Invalid connection type '%s'. Must be 'XML' or 'SfcbLocal'.",id);
} else {
if ((strcmp(id, "SfcbLocal") == 0) &&
- ((SFCB_LIBDIR != NULL) && (strlen(SFCB_LIBDIR) > 0))) {
+ (stat(SFCB_LIBDIR, &sbuf) == 0)) {
snprintf(libName, LIBLEN, "%s/libcimcClient%s.so",SFCB_LIBDIR,id);
} else {
snprintf(libName, LIBLEN, "libcimcClient%s.so",id);
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);
}