summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-10-06 00:02:15 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-10-06 00:02:15 +0000
commitf3a09961a96ae637e381df5f2905f6c2fd7ec8af (patch)
tree6fa4d3f8f22b617a8040d566b203ba8f485e6915 /ace
parent266e97c5de7ff813235cb728d1a7aa3cf7c7dad5 (diff)
downloadATCD-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.i10
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_);
}
// ****************************************************************