From: Viktor M. <mih...@us...> - 2005-06-07 08:39:47
|
Update of /cvsroot/sblim/mofc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11567 Modified Files: ChangeLog NEWS backend_sfcb.c configure.ac Log Message: Bugs fixed: 1216246 incorrect array value handling. Index: NEWS =================================================================== RCS file: /cvsroot/sblim/mofc/NEWS,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- NEWS 3 Mar 2005 09:08:47 -0000 1.1.1.1 +++ NEWS 7 Jun 2005 08:39:37 -0000 1.2 @@ -0,0 +1,5 @@ +Changes in 0.7.1 +================ + +Bugs fixed: +- 1216246: Array type value/qualifiers are always NULL Index: configure.ac =================================================================== RCS file: /cvsroot/sblim/mofc/configure.ac,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- configure.ac 1 Apr 2005 10:48:14 -0000 1.3 +++ configure.ac 7 Jun 2005 08:39:37 -0000 1.4 @@ -1,6 +1,6 @@ # $Id$ -AC_INIT(MOF Compiler, 0.7.0, mih...@de...,mofc) +AC_INIT(MOF Compiler, 0.7.1, sbl...@li...,mofc) AC_CONFIG_SRCDIR([hash.c]) AC_CONFIG_HEADER([config.h]) Index: backend_sfcb.c =================================================================== RCS file: /cvsroot/sblim/mofc/backend_sfcb.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- backend_sfcb.c 3 Mar 2005 09:08:47 -0000 1.1.1.1 +++ backend_sfcb.c 7 Jun 2005 08:39:37 -0000 1.2 @@ -89,6 +89,16 @@ CMPIData data; CMPIData arr_data; int i = 0; + + if ( vals == NULL ) { + data.state = CMPI_nullValue; + } else if (vals -> val_value == NULL) { + fprintf (stderr,"*** fatal error in backend: NULL value recieved.\n"); + abort(); /* paranoia */ + }else { + data.state = CMPI_goodValue; + } + data.type = make_cmpi_type(lextype,arrayspec); if (data.type & CMPI_ARRAY) { @@ -101,104 +111,94 @@ i++; vals = vals -> val_next; } - } - - if ( vals == NULL ) { - data.state = CMPI_nullValue; - } else if (vals -> val_value == NULL) { - fprintf (stderr,"*** fatal error in backend: NULL value recieved.\n"); - abort(); /* paranoia */ - }else { - data.state = CMPI_goodValue; - } - - data.value.uint64 = 0L; /* set to binary zeros */ - switch (data.type & ~CMPI_ARRAY) { - case CMPI_uint8: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%hhu", &data.value.uint8 ); - } - break; - case CMPI_sint8: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%hhd", &data.value.sint8 ); - } - break; - case CMPI_uint16: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%hu", &data.value.uint16 ); - } - break; - case CMPI_sint16: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%hd", &data.value.sint16 ); - } - break; - case CMPI_uint32: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%lu", &data.value.uint32 ); - } - break; - case CMPI_sint32: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%ld", &data.value.sint32 ); - } - break; - case CMPI_uint64: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%llu", &data.value.uint64); - } - break; - case CMPI_sint64: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%lld", &data.value.uint64 ); - } - break; - case CMPI_real32: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%f", &data.value.real32 ); - } - break; - case CMPI_real64: - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%lf", &data.value.real64 ); - } - break; - case CMPI_char16: - /* this one is suspect to produce garbage */ - if ( data.state == CMPI_goodValue ) { - sscanf(vals -> val_value, "%c", &data.value.uint8 ); - } - break; - case CMPI_string: - if ( data.state == CMPI_goodValue ) { - data.value.string = CMNewString(Broker,vals -> val_value,NULL); - } - break; - case CMPI_boolean: - if ( data.state == CMPI_goodValue ) { - if (strcasecmp("true",vals -> val_value) == 0) { - data.value.boolean = 1; - } else { - data.value.boolean = 0; + } else { + data.value.uint64 = 0L; /* set to binary zeros */ + switch (data.type & ~CMPI_ARRAY) { + case CMPI_uint8: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%hhu", &data.value.uint8 ); } - } - break; - case CMPI_dateTime: - if ( data.state == CMPI_goodValue ) { - data.value.dateTime = - CMNewDateTimeFromChars(Broker,vals -> val_value,NULL); - if (data.value.dateTime == NULL) { - fprintf(stderr,"failed to build datetime from %s", vals -> val_value); + break; + case CMPI_sint8: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%hhd", &data.value.sint8 ); + } + break; + case CMPI_uint16: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%hu", &data.value.uint16 ); + } + break; + case CMPI_sint16: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%hd", &data.value.sint16 ); + } + break; + case CMPI_uint32: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%lu", &data.value.uint32 ); + } + break; + case CMPI_sint32: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%ld", &data.value.sint32 ); + } + break; + case CMPI_uint64: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%llu", &data.value.uint64); + } + break; + case CMPI_sint64: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%lld", &data.value.uint64 ); + } + break; + case CMPI_real32: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%f", &data.value.real32 ); + } + break; + case CMPI_real64: + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%lf", &data.value.real64 ); + } + break; + case CMPI_char16: + /* this one is suspect to produce garbage */ + if ( data.state == CMPI_goodValue ) { + sscanf(vals -> val_value, "%c", &data.value.uint8 ); + } + break; + case CMPI_string: + if ( data.state == CMPI_goodValue ) { + data.value.string = CMNewString(Broker,vals -> val_value,NULL); } + break; + case CMPI_boolean: + if ( data.state == CMPI_goodValue ) { + if (strcasecmp("true",vals -> val_value) == 0) { + data.value.boolean = 1; + } else { + data.value.boolean = 0; + } + } + break; + case CMPI_dateTime: + if ( data.state == CMPI_goodValue ) { + data.value.dateTime = + CMNewDateTimeFromChars(Broker,vals -> val_value,NULL); + if (data.value.dateTime == NULL) { + fprintf(stderr,"failed to build datetime from %s", vals -> val_value); + } + } + break; + default: + data.state = CMPI_goodValue; + data.value.ref = CMNewObjectPath(Broker,NULL, + lextype.type_ref -> class_id,NULL); } - break; - default: - data.state = CMPI_goodValue; - data.value.ref = CMNewObjectPath(Broker,NULL, - lextype.type_ref -> class_id,NULL); } - return data; } Index: ChangeLog =================================================================== RCS file: /cvsroot/sblim/mofc/ChangeLog,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- ChangeLog 3 Mar 2005 09:08:47 -0000 1.1.1.1 +++ ChangeLog 7 Jun 2005 08:39:37 -0000 1.2 @@ -0,0 +1,5 @@ +2005-06-07 <mihajlov@localhost.localdomain> + + * backend_sfcb.c (make_cmpi_data): + Bug 1216246 fixed: incorrect handling of array values. + |