diff options
author | gmaxey <gmaxey@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-11-11 22:38:22 +0000 |
---|---|---|
committer | gmaxey <gmaxey@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-11-11 22:38:22 +0000 |
commit | 9464369da121d9ea0d77c1ab5609a690338870b2 (patch) | |
tree | edaa529762e3c69b279c66c46116f06bf16b783e | |
parent | 7fb95b2d4e53068eb49d38409997a59578d294ab (diff) | |
download | ATCD-9464369da121d9ea0d77c1ab5609a690338870b2.tar.gz |
ChangeLogTag: Thu Nov 11 14:33:00 2004 Gary Maxey <gary.maxey@hp.com>
-rw-r--r-- | TAO/ChangeLog | 10 | ||||
-rw-r--r-- | TAO/tao/Connector_Registry.cpp | 17 |
2 files changed, 26 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 77e02f5bbce..450c51f8d02 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,13 @@ +Thu Nov 11 14:33:00 2004 Gary Maxey <gary.maxey@hp.com> + + * tao/Connector_Registry.cpp + + Fixed problem in create_profile() when there is an + unknown profile. The cdr.orb_core() value may be zero + in this case. This zero value is passed to the + TAO_Unknown_Profile constructor where it eventually leads + to a memory fault. + Thu Nov 11 14:55:00 2004 Jeff Parsons <j.parsons@vanderbilt.edu> * TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp: diff --git a/TAO/tao/Connector_Registry.cpp b/TAO/tao/Connector_Registry.cpp index 7fd840cffc8..12659bb973b 100644 --- a/TAO/tao/Connector_Registry.cpp +++ b/TAO/tao/Connector_Registry.cpp @@ -187,10 +187,25 @@ TAO_Connector_Registry::create_profile (TAO_InputCDR &cdr) tag)); } + TAO_ORB_Core *orb_core = cdr.orb_core (); + if (orb_core == 0) + { + orb_core = TAO_ORB_Core_instance (); + if (TAO_debug_level > 0) + { + ACE_DEBUG ((LM_WARNING, + ACE_LIB_TEXT ("TAO (%P|%t) - TAO_Connector_Registry" + "::create_profile: ") + ACE_LIB_TEXT ("WARNING: extracting object from ") + ACE_LIB_TEXT ("default ORB_Core\n"))); + } + } + + TAO_Profile *pfile = 0; ACE_NEW_RETURN (pfile, TAO_Unknown_Profile (tag, - cdr.orb_core ()), + orb_core), 0); if (pfile->decode (cdr) == -1) { |