Commit b82a33d2 by Paolo Carlini Committed by Paolo Carlini

std_sstream.h (setbuf): Check __n >= 0.

2003-06-18  Paolo Carlini  <pcarlini@unitus.it>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_sstream.h (setbuf): Check __n >= 0.
	* include/bits/fstream.tcc (setbuf): Tweak.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r68163
parent 4c526d09
2003-06-18 Paolo Carlini <pcarlini@unitus.it>
Benjamin Kosnik <bkoz@redhat.com>
* include/std/std_sstream.h (setbuf): Check __n >= 0.
* include/bits/fstream.tcc (setbuf): Tweak.
2003-06-18 Paolo Carlini <pcarlini@unitus.it>
* include/bits/sstream.tcc (seekoff): We can't seek beyond
_M_out_lim, therefore _M_move_out_cur boils down to simply
......
......@@ -429,7 +429,7 @@ namespace std
{
if (!this->is_open() && __s == 0 && __n == 0)
this->_M_buf_size = 1;
else if (__s && __n >= 1)
else if (__s && __n > 0)
{
// This is implementation-defined behavior, and assumes that
// an external char_type array of length __n exists and has
......
......@@ -208,12 +208,12 @@ namespace std
virtual __streambuf_type*
setbuf(char_type* __s, streamsize __n)
{
if (__s && __n)
if (__s && __n >= 0)
{
// This is implementation-defined behavior, and assumes
// that an external char_type array of length (__s + __n)
// exists and has been pre-allocated. If this is not the
// case, things will quickly blow up.
// that an external char_type array of length __n exists
// and has been pre-allocated. If this is not the case,
// things will quickly blow up.
// Step 1: Destroy the current internal array.
_M_string = __string_type(__s, __n);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment