summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2003-02-06 21:48:35 +0000
committerbala <balanatarajan@users.noreply.github.com>2003-02-06 21:48:35 +0000
commita50d90a059d3b253a743fdb5b9bf6dfaadcfad83 (patch)
tree2c1a3678d65e5d4fa7a4aeddaeda1a6a423fa5d5
parent40fcb05f6a1eb2aff32918315d7fbf2871bd514e (diff)
downloadATCD-a50d90a059d3b253a743fdb5b9bf6dfaadcfad83.tar.gz
ChangeLogTag: Thu Feb 6 16:37:32 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
-rw-r--r--TAO/tao/ChangeLog7
-rw-r--r--TAO/tao/ClientRequestInfo_i.cpp8
-rw-r--r--TAO/tao/Invocation.cpp12
-rw-r--r--TAO/tao/Stub.cpp3
4 files changed, 27 insertions, 3 deletions
diff --git a/TAO/tao/ChangeLog b/TAO/tao/ChangeLog
index 3ab08c051ab..5b62c362c93 100644
--- a/TAO/tao/ChangeLog
+++ b/TAO/tao/ChangeLog
@@ -1,3 +1,10 @@
+Thu Feb 6 16:37:32 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
+
+ * tao/Stub.cpp (ior_info_):
+ * tao/Invocation.cpp:
+ * tao/ClientRequestInfo_i.cpp: Added error checks to the last
+ checkins.
+
Sun Jan 26 23:50:17 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
* tao/Profile.cpp:
diff --git a/TAO/tao/ClientRequestInfo_i.cpp b/TAO/tao/ClientRequestInfo_i.cpp
index b20f96a973a..2c9f9033bb8 100644
--- a/TAO/tao/ClientRequestInfo_i.cpp
+++ b/TAO/tao/ClientRequestInfo_i.cpp
@@ -134,6 +134,14 @@ TAO_ClientRequestInfo_i::effective_profile (ACE_ENV_SINGLE_ARG_DECL)
IOP::TaggedProfile *ep =
this->target_->_stubobj ()->profile_in_use ()->create_tagged_profile ();
+ if (ep == 0)
+ {
+ ACE_THROW_RETURN (CORBA::BAD_PARAM (CORBA::OMGVMCID | 28,
+ CORBA::COMPLETED_NO),
+ 0);
+ }
+
+ // @@BAD_PARAM exception
tagged_profile->tag = ep->tag;
tagged_profile->profile_data = ep->profile_data; // Deep copy
diff --git a/TAO/tao/Invocation.cpp b/TAO/tao/Invocation.cpp
index e00002a4ed3..5728d07bc3f 100644
--- a/TAO/tao/Invocation.cpp
+++ b/TAO/tao/Invocation.cpp
@@ -345,6 +345,7 @@ TAO_GIOP_Invocation::prepare_header (CORBA::Octet response_flags
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
+
// Set the target specification mode
switch (this->profile_->addressing_mode ())
{
@@ -354,9 +355,14 @@ TAO_GIOP_Invocation::prepare_header (CORBA::Octet response_flags
break;
case TAO_Target_Specification::Profile_Addr:
- this->target_spec_.target_specifier (
- *this->profile_->create_tagged_profile ());
- break;
+ {
+ IOP::TaggedProfile *tp =
+ this->profile_->create_tagged_profile ();
+
+ if (tp)
+ this->target_spec_.target_specifier (*tp);
+ }
+ break;
case TAO_Target_Specification::Reference_Addr:
// We need to call the method seperately. If there is no
diff --git a/TAO/tao/Stub.cpp b/TAO/tao/Stub.cpp
index a5e59fd929e..6cb5e4e2d38 100644
--- a/TAO/tao/Stub.cpp
+++ b/TAO/tao/Stub.cpp
@@ -261,6 +261,9 @@ TAO_Stub::get_profile_ior_info (TAO_MProfile &profiles,
IOP::TaggedProfile *tp =
prof->create_tagged_profile ();
+ if (tp == 0)
+ ACE_THROW_RETURN (CORBA::NO_MEMORY (),
+ -1);
ior_info->profiles[index] = *tp;
}