|
From: Narasimha S. <nsh...@us...> - 2012-04-04 12:36:33
|
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 3429a6d00ca9ec7e3c138ddbfcfb767b70bd4301 (commit)
from 0374a6bef3c312ad7ca1c0f0e34ac3655ebbd316 (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 3429a6d00ca9ec7e3c138ddbfcfb767b70bd4301
Author: nsharoff <nsharoff@nsharoff.(none)>
Date: Wed Apr 4 05:34:26 2012 -0700
[ 3416060 ] SIGSEGV in tool_mm_flush()
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index c13c4c1..52d9310 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-04-04 Narasimha Sharoff <nsh...@us...>
+
+ * providerDrv.c, providerMgr.c, providerMgr.h, support.c:
+ [ 3416060 ] SIGSEGV in tool_mm_flush()
+
2012-04-03 Narasimha Sharoff <nsh...@us...>
* providerDrv.c:
diff --git a/providerDrv.c b/providerDrv.c
index 6efac1b..0398ec8 100644
--- a/providerDrv.c
+++ b/providerDrv.c
@@ -328,7 +328,8 @@ testStartedProc(int pid, int *left)
stopped = 1;
(pp + i)->pid = 0;
info = (pp + i)->firstProv;
- pReg->ft->resetProvider(pReg, pid);
+ if (pReg)
+ pReg->ft->resetProvider(pReg, pid);
}
if ((pp + i)->pid != 0)
(*left)++;
@@ -935,6 +936,7 @@ getProcess(ProviderInfo * info, ProviderProcess ** proc)
if (info->pid == 0) {
currentProc = getpid();
+ sigprocmask(SIG_SETMASK, &old_mask, NULL);
setSignal(SIGCHLD, SIG_DFL, 0);
setSignal(SIGTERM, SIG_IGN, 0);
setSignal(SIGHUP, SIG_IGN, 0);
diff --git a/providerMgr.c b/providerMgr.c
index c088608..8516e33 100644
--- a/providerMgr.c
+++ b/providerMgr.c
@@ -990,6 +990,10 @@ processProviderMgrRequests()
_SFCB_ENTER(TRACE_PROVIDERMGR, "processProviderMgrRequests");
+ /* SF:3416060 disable signals during startup */
+ sigfillset(&mask);
+ sigprocmask(SIG_SETMASK, &mask, &old_mask);
+
startUpProvider("root/interop", "$ClassProvider$");
#ifdef SFCB_INCL_INDICATION_SUPPORT
@@ -1001,6 +1005,7 @@ processProviderMgrRequests()
#ifdef HAVE_SLP
startUpProvider("root/interop", "$ProfileProvider$");
#endif
+ sigprocmask(SIG_SETMASK, &old_mask, NULL);
for (;;) {
MgrHandler hdlr;
@@ -1029,8 +1034,10 @@ processProviderMgrRequests()
req->nameSpace.data, req->className.data, req->type,
requestor));
+ sigprocmask(SIG_SETMASK, &mask, &old_mask);
hdlr = mHandlers[req->type];
hdlr.handler(&requestor, req);
+ sigprocmask(SIG_SETMASK, &old_mask, NULL);
_SFCB_TRACE(1,
("--- Mgr request for %s-%s DONE", req->nameSpace.data,
diff --git a/providerMgr.h b/providerMgr.h
index e5e5004..1c4d91a 100644
--- a/providerMgr.h
+++ b/providerMgr.h
@@ -384,6 +384,7 @@ BinResponseHdr **invokeProviders(BinRequestContext * binCtx, int *err,
BinResponseHdr *invokeProvider(BinRequestContext * ctx);
void freeResponseHeaders(BinResponseHdr ** resp,
BinRequestContext * ctx);
+sigset_t mask, old_mask;
#endif
/* MODELINES */
diff --git a/support.c b/support.c
index 3afb052..4eb69f1 100644
--- a/support.c
+++ b/support.c
@@ -748,8 +748,10 @@ init_sfcBroker()
int
uninit_sfcBroker()
{
- if (pReg)
+ if (pReg) {
pReg->ft->release(pReg);
+ pReg = NULL;
+ }
return 0;
}
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|