diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-11-19 01:34:47 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-11-19 01:34:47 +0000 |
commit | 0af3b7a8f4ab6ab50aff7b25003f057c29e82d0e (patch) | |
tree | 176d84112223418de82732746bf8cda8afb61c3b | |
parent | 0811bce193b0ce038e9985c1f9e021cb895c36c5 (diff) | |
download | ATCD-0af3b7a8f4ab6ab50aff7b25003f057c29e82d0e.tar.gz |
ChangeLogTag:Sun Nov 18 17:33:41 2001 Ossama Othman <ossama@uci.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 9 | ||||
-rw-r--r-- | TAO/tao/ORB_Core.cpp | 15 |
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 ()); } |