diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-06 00:02:15 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-06 00:02:15 +0000 |
commit | f3a09961a96ae637e381df5f2905f6c2fd7ec8af (patch) | |
tree | 6fa4d3f8f22b617a8040d566b203ba8f485e6915 /ace | |
parent | 266e97c5de7ff813235cb728d1a7aa3cf7c7dad5 (diff) | |
download | ATCD-f3a09961a96ae637e381df5f2905f6c2fd7ec8af.tar.gz |
Changed << for bounded (w)strings to marshal only 'length' bytes,
not 'bound' bytes.
Diffstat (limited to 'ace')
-rw-r--r-- | ace/CDR_Stream.i | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ace/CDR_Stream.i b/ace/CDR_Stream.i index 919940b52f6..ed3635d4503 100644 --- a/ace/CDR_Stream.i +++ b/ace/CDR_Stream.i @@ -1015,15 +1015,17 @@ operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_octet x) ACE_INLINE ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_string x) { - os.write_string (x.bound_, x.val_); - return os.good_bit (); + ACE_CDR::ULong len = ACE_OS::strlen (x.val_); + os.write_string (len, x.val_); + return os.good_bit () && (len <= x.bound_); } ACE_INLINE ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_wstring x) { - os.write_wstring (x.bound_, x.val_); - return os.good_bit (); + ACE_CDR::ULong len = ACE_OS::wslen (x.val_); + os.write_wstring (len, x.val_); + return os.good_bit () && (len <= x.bound_); } // **************************************************************** |