|
From: Narasimha S. <nsh...@us...> - 2012-04-04 02:26:06
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via 0374a6bef3c312ad7ca1c0f0e34ac3655ebbd316 (commit)
from 68f6984aa26ed4f884e98827bf1708feb5869eab (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 0374a6bef3c312ad7ca1c0f0e34ac3655ebbd316
Author: nsharoff <nsharoff@nsharoff.(none)>
Date: Tue Apr 3 19:24:49 2012 -0700
Patches for [ 3483200, 3497209, 3498496 ]
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index 3cfc362..c13c4c1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2012-04-03 Narasimha Sharoff <nsh...@us...>
+ * providerDrv.c:
+ [ 3498496 ] sfcb hangs and fails to respond to CIM requests
+
+ * brokerUpc.c:
+ [ 3497209 ] oom panic: out of memory using fsp indprovider
+
+ * brokerUpc.c:
+ [ 3483200 ] duplicate indication deliveries
+
+2012-04-03 Narasimha Sharoff <nsh...@us...>
+
* indCIMXMLHandler.c, interopProvider.c:
[ 3495060 ] verify filter and handler information during subscription
diff --git a/brokerUpc.c b/brokerUpc.c
index 396ec96..8953a2c 100644
--- a/brokerUpc.c
+++ b/brokerUpc.c
@@ -124,6 +124,7 @@ deliverIndication(const CMPIBroker * mb, const CMPIContext *ctx,
NativeSelectExp *se = activFilters;
while (se) {
+ void *hc = markHeap(); /* 3497209:78376 */
/* Check for matching FROM class */
for (x=0; x<se->qs->fcNext; x++) {
if (CMClassPathIsA(mb, indop, se->qs->fClasses[x], &st)) {
@@ -131,6 +132,7 @@ deliverIndication(const CMPIBroker * mb, const CMPIContext *ctx,
break;
}
}
+ releaseHeap(hc); /* 3497209:78376 - relase objs that are no longer reqd */
if (classMatch && se->exp.ft->evaluate(&se->exp, ind, &st)) {
/*
* apply a propertyfilter in case the query is not "SELECT * FROM
@@ -153,7 +155,10 @@ deliverIndication(const CMPIBroker * mb, const CMPIContext *ctx,
#endif
);
CBInvokeMethod(mb, ctx, op, "_deliver", in, NULL, &st);
+ CMRelease(op);
+ CMRelease(in);
}
+ classMatch = 0; /* 3483200 */
se = se->next;
}
diff --git a/providerDrv.c b/providerDrv.c
index 8533cf0..6efac1b 100644
--- a/providerDrv.c
+++ b/providerDrv.c
@@ -2814,8 +2814,7 @@ deactivateFilter(BinRequestHdr * hdr, ProviderInfo * info, int requestor)
IndicationReq *req = (IndicationReq *) hdr;
BinResponseHdr *resp = NULL;
CMPIStatus rci = { CMPI_RC_OK, NULL };
- NativeSelectExp *se = NULL,
- **sef = &activFilters;
+ NativeSelectExp *se = NULL, *prev = NULL;
CMPIObjectPath *path =
relocateSerializedObjectPath(req->objectPath.data);
CMPIContext *ctx = native_new_CMPIContext(MEM_TRACKED, info);
@@ -2837,9 +2836,9 @@ deactivateFilter(BinRequestHdr * hdr, ProviderInfo * info, int requestor)
if (info->indicationMI == NULL || activFilters == NULL)
_SFCB_RETURN(resp);
- for (se = activFilters; se; se = se->next) {
+ for (se = activFilters; se; prev = se, se = se->next) {
+ //_SFCB_TRACE(1, ("---- se->filterid:%p, req=>filterid:%p, se:%p, activFilters:%p, prev:%p", se->filterId, req->filterId, se, activFilters, prev));
if (se->filterId == req->filterId) {
- *sef = se->next;
if (activFilters == NULL) {
_SFCB_TRACE(1,
("--- Calling disableIndications %s",
@@ -2872,6 +2871,15 @@ deactivateFilter(BinRequestHdr * hdr, ProviderInfo * info, int requestor)
if (rci.rc == CMPI_RC_OK) {
decreaseInUseSem(info->provIds.procId);
resp->rc = 1;
+ /*79580-3498496*/
+ if (prev == NULL) {
+ activFilters = activFilters->next;
+ }
+ else {
+ prev->next = se->next;
+ }
+ _SFCB_TRACE(1, ("---- pid:%d, freeing: %p", currentProc, se));
+ CMRelease((CMPISelectExp *)se);
_SFCB_RETURN(resp);
}
@@ -2880,8 +2888,6 @@ deactivateFilter(BinRequestHdr * hdr, ProviderInfo * info, int requestor)
resp = errorResp(&rci);
_SFCB_RETURN(resp);
}
- sef = &se->next;
- CMRelease((CMPISelectExp*)se);
}
_SFCB_RETURN(resp);
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|