Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv12286
Modified Files:
queryOperation.h queryStatement.c selectexp.c
Log Message:
[ 3532494 ] interopProvider not honoring SourceNamespaces[] correctly
Signed-off-by: Narasimha Sharoff <nsh...@us...>
Index: queryOperation.h
===================================================================
RCS file: /cvsroot/sblim/sfcb/queryOperation.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- queryOperation.h 11 May 2012 20:05:11 -0000 1.12
+++ queryOperation.h 21 Jun 2012 16:50:14 -0000 1.13
@@ -250,6 +250,7 @@
unsigned int allocMode,allocNext,allocMax;
void **allocList;
char *sns;
+ CMPIArray *snsa;
};
struct qlCollector {
@@ -263,7 +264,7 @@
QLCollector *collector;
};
-extern QLStatement *parseQuery(int mode, const char *query, const char *lang, const char *sns, int *rc);
+extern QLStatement *parseQuery(int mode, const char *query, const char *lang, const char *sns, CMPIArray *snsa, int *rc);
#endif
Index: selectexp.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/selectexp.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- selectexp.c 2 Oct 2007 09:02:11 -0000 1.11
+++ selectexp.c 21 Jun 2012 16:50:14 -0000 1.12
@@ -147,7 +147,7 @@
/*fprintf(stderr,"*** new select expression: %s %s\n",queryString, language);*/
- exp.qs=parseQuery(mode,(char*)queryString, (char*)language, (char*) sns, &irc);
+ exp.qs=parseQuery(mode,(char*)queryString, (char*)language, (char*) sns, NULL, &irc);
if (irc) {
if (rc) CMSetStatus(rc, CMPI_RC_ERR_INVALID_QUERY);
return NULL;
Index: queryStatement.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/queryStatement.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- queryStatement.c 11 May 2012 20:05:11 -0000 1.17
+++ queryStatement.c 21 Jun 2012 16:50:14 -0000 1.18
@@ -158,6 +158,7 @@
if(st->sns) {
free(st->sns);
}
+ if (st->snsa) CMRelease(st->snsa);
/* free everything but the first element of allocList, which is
* the memory allocated for the QLStatement itself, see
* newQLStatement(...). The struct is then freed after the loop */
@@ -240,7 +241,7 @@
};
-QLStatement *parseQuery(int mode, const char *query, const char *lang, const char *sns, int *rc)
+QLStatement *parseQuery(int mode, const char *query, const char *lang, const char *sns, CMPIArray *snsa, int *rc)
{
QLStatement *qs=NULL;
QLCollector ctlFt={
@@ -269,6 +270,10 @@
if (sns) qs->sns=strdup(sns);
else sns=NULL;
+
+ /* copy the Sourcenamespaces[] array*/
+ if (snsa) qs->snsa=snsa->ft->clone(snsa, NULL);
+ else qs->snsa=NULL;
return qs;
}
|