summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2001-11-19 01:34:47 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2001-11-19 01:34:47 +0000
commit0af3b7a8f4ab6ab50aff7b25003f057c29e82d0e (patch)
tree176d84112223418de82732746bf8cda8afb61c3b
parent0811bce193b0ce038e9985c1f9e021cb895c36c5 (diff)
downloadATCD-0af3b7a8f4ab6ab50aff7b25003f057c29e82d0e.tar.gz
ChangeLogTag:Sun Nov 18 17:33:41 2001 Ossama Othman <ossama@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a9
-rw-r--r--TAO/tao/ORB_Core.cpp15
2 files changed, 16 insertions, 8 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index ebf467461b8..3b704aa382f 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,12 @@
+Sun Nov 18 17:33:41 2001 Ossama Othman <ossama@uci.edu>
+
+ * tao/ORB_Core.cpp (init):
+
+ Fixed incorrect use of a CORBA::String_var in some
+ -ORBDefaultInitRed related code. It was being used as if it was
+ a pointer to char, resulting in a subtle memory corruption
+ problem due to consecutive assignments to the CORBA::String_var.
+
Sun Nov 18 13:32:10 2001 Craig Rodrigues <crodrigu@bbn.com>
* orbsvcs/orbsvcs/AV/md5c.c (MD5Init): Converted to ISO/ANSI C
diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp
index 87f09cfc238..9e9b8cdbedb 100644
--- a/TAO/tao/ORB_Core.cpp
+++ b/TAO/tao/ORB_Core.cpp
@@ -968,7 +968,7 @@ TAO_ORB_Core::init (int &argc, char *argv[], CORBA::Environment &ACE_TRY_ENV)
if (ns_port != 0)
{
- char ns_port_char[33];
+ char ns_port_char[256];
ACE_OS_String::itoa (ns_port,
ns_port_char,
@@ -979,17 +979,16 @@ TAO_ORB_Core::init (int &argc, char *argv[], CORBA::Environment &ACE_TRY_ENV)
ns_port_ptr = (const char *) ns_port_char;
- const char prefix [] = "mcast://:";
+ const char prefix[] = "mcast://:";
CORBA::String_var def_init_ref =
CORBA::string_alloc (sizeof (prefix) +
- ACE_OS::strlen
- (ns_port_ptr.in ()) +
- 3);
+ ACE_OS::strlen (ns_port_ptr.in ()) +
+ 2);
- def_init_ref = ACE_OS::strcpy (def_init_ref, prefix);
- def_init_ref = ACE_OS::strcat (def_init_ref, ns_port_ptr.in ());
- def_init_ref = ACE_OS::strcat (def_init_ref, "::");
+ ACE_OS::strcpy (def_init_ref, prefix);
+ ACE_OS::strcat (def_init_ref, ns_port_ptr.in ());
+ ACE_OS::strcat (def_init_ref, "::");
this->orb_params ()->default_init_ref (def_init_ref.in ());
}