summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McQueen <simon.mcqueen@gmail.com>2005-06-16 15:55:19 +0000
committerSimon McQueen <simon.mcqueen@gmail.com>2005-06-16 15:55:19 +0000
commit5e2d008b641106dc3791fb508a84c87a2592045b (patch)
treee4bed01caa79cba870a2f52ba070e113dd4fc5f2
parentb6a79b4d7176afff232d0059155de37b938b79cf (diff)
downloadATCD-5e2d008b641106dc3791fb508a84c87a2592045b.tar.gz
ChangeLog: Thu Jun 16 16:47:42 2005 Simon McQueen <sm@prismtech.com>
-rw-r--r--TAO/ChangeLog7
-rw-r--r--TAO/orbsvcs/IFR_Service/be_produce.cpp29
2 files changed, 23 insertions, 13 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 2046576d72c..4d5bc4851f1 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,10 @@
+Thu Jun 16 16:47:42 2005 Simon McQueen <sm@prismtech.com>
+
+ * orbsvcs/IFR_Service/be_produce.cpp:
+
+ Check repository ptr is not null before use in BE_cleanup.
+ This fixes bug #2154.
+
Thu Jun 16 07:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
* tao/PI/ORBInitializer_Registry_Impl.{h,cpp}:
diff --git a/TAO/orbsvcs/IFR_Service/be_produce.cpp b/TAO/orbsvcs/IFR_Service/be_produce.cpp
index 20661a2d020..302c6ca84b6 100644
--- a/TAO/orbsvcs/IFR_Service/be_produce.cpp
+++ b/TAO/orbsvcs/IFR_Service/be_produce.cpp
@@ -90,20 +90,23 @@ BE_cleanup (void)
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
- CORBA::Contained_var result =
- be_global->repository ()->lookup_id (be_global->holding_scope_name ()
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- if (!CORBA::is_nil (result.in ()))
+ if (be_global->repository ())
{
- CORBA::ModuleDef_var scope =
- CORBA::ModuleDef::_narrow (result.in ()
- ACE_ENV_ARG_PARAMETER);
+ CORBA::Contained_var result =
+ be_global->repository ()->lookup_id (be_global->holding_scope_name ()
+ ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
- scope->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
+ if (!CORBA::is_nil (result.in ()))
+ {
+ CORBA::ModuleDef_var scope =
+ CORBA::ModuleDef::_narrow (result.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ scope->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
}
}
ACE_CATCHANY
@@ -176,7 +179,7 @@ BE_ifr_repo_init (ACE_ENV_SINGLE_ARG_DECL)
);
}
- CORBA::Repository_var repo =
+ CORBA::Repository_var repo =
CORBA::Repository::_narrow (object.in ()
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
@@ -205,7 +208,7 @@ BE_produce (void)
{
int status = BE_ifr_repo_init (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
-
+
if (status != 0)
{
return;