summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgmaxey <gmaxey@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-11-11 22:38:22 +0000
committergmaxey <gmaxey@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-11-11 22:38:22 +0000
commit9464369da121d9ea0d77c1ab5609a690338870b2 (patch)
treeedaa529762e3c69b279c66c46116f06bf16b783e
parent7fb95b2d4e53068eb49d38409997a59578d294ab (diff)
downloadATCD-9464369da121d9ea0d77c1ab5609a690338870b2.tar.gz
ChangeLogTag: Thu Nov 11 14:33:00 2004 Gary Maxey <gary.maxey@hp.com>
-rw-r--r--TAO/ChangeLog10
-rw-r--r--TAO/tao/Connector_Registry.cpp17
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)
{