diff options
author | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-12-01 14:13:08 +0000 |
---|---|---|
committer | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-12-01 14:13:08 +0000 |
commit | 70f3b825dee287df493279abfacd74c68cf0d729 (patch) | |
tree | d1262b83c7fcc2c3b349df17969663ebe3e061e3 | |
parent | b9f5804bc6355e132ee5f79d47e41e279fc45111 (diff) | |
download | ATCD-70f3b825dee287df493279abfacd74c68cf0d729.tar.gz |
ChangeLogTag: Wed Dec 1 14:00:00 UTC 2004 Simon Massey <sma@prismtech.com>
-rw-r--r-- | TAO/ChangeLog | 9 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp | 7 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/StructDef_i.cpp | 6 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp | 13 |
4 files changed, 35 insertions, 0 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index a1377790c39..6cfeefe2389 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,12 @@ +Wed Dec 1 14:00:00 UTC 2004 Simon Massey <sma@prismtech.com> + + * TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp + * TAO/orbsvcs/orbsvcs/IFRService/StructDef_i.cpp + * TAO/orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp + + Fixed bugzilla 1996 - IFR - Derefferencing NULL pointer + when compound object has been deleted + Wed Dec 1 07:18:37 2004 Chad Elliott <elliott_c@ociweb.com> * orbsvcs/tests/FT_App/FT_Client.cpp: diff --git a/TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp index 084bdac4ec0..aa81a2ab1ff 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp @@ -63,6 +63,13 @@ TAO_AliasDef_i::type_i (ACE_ENV_SINGLE_ARG_DECL) TAO_IDLType_i *impl = TAO_IFR_Service_Utils::path_to_idltype (original_type, this->repo_); + ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); + + if (0 == impl) + { + ACE_THROW( CORBA::OBJECT_NOT_EXIST() ); + ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); + } CORBA::TypeCode_var tc = impl->type_i (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); diff --git a/TAO/orbsvcs/orbsvcs/IFRService/StructDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/StructDef_i.cpp index 6e3d2bbddb4..5c0e90660f2 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/StructDef_i.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/StructDef_i.cpp @@ -208,6 +208,12 @@ TAO_StructDef_i::members_i (ACE_ENV_SINGLE_ARG_DECL) impl = TAO_IFR_Service_Utils::path_to_idltype (path, this->repo_); + ACE_CHECK_RETURN (0); + if (0 == impl) + { + ACE_THROW(CORBA::OBJECT_NOT_EXIST()); + ACE_CHECK_RETURN (0); + } retval[k].type = impl->type_i (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); diff --git a/TAO/orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp index 827a5049395..85c24eadc82 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp @@ -122,6 +122,13 @@ TAO_UnionDef_i::discriminator_type_i (ACE_ENV_SINGLE_ARG_DECL) TAO_IDLType_i *impl = TAO_IFR_Service_Utils::path_to_idltype (disc_path, this->repo_); + ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); + + if (0 == impl) + { + ACE_THROW(CORBA::OBJECT_NOT_EXIST()); + ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); + } return impl->type_i (ACE_ENV_SINGLE_ARG_PARAMETER); } @@ -292,6 +299,12 @@ TAO_UnionDef_i::members_i (ACE_ENV_SINGLE_ARG_DECL) impl = TAO_IFR_Service_Utils::path_to_idltype (path, this->repo_); + ACE_CHECK_RETURN (0); + if (0 == impl) + { + ACE_THROW(CORBA::OBJECT_NOT_EXIST()); + ACE_CHECK_RETURN (0); + } retval[k].type = impl->type_i (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); |