mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 07:14:09 +08:00
re PR libstdc++/13217 (basic_filebuf::underflow doesn't deal gracefully with read errors)
2003-12-10 Paolo Carlini <pcarlini@suse.de> PR libstdc++/13217 * include/bits/fstream.tcc (underflow): Deal gracefully with read errors: throw ios_base::failure. From-SVN: r74506
This commit is contained in:
parent
35d6801ebe
commit
3090572ce2
@ -1,3 +1,9 @@
|
||||
2003-12-10 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/13217
|
||||
* include/bits/fstream.tcc (underflow): Deal gracefully with
|
||||
read errors: throw ios_base::failure.
|
||||
|
||||
2003-12-10 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
PR libstdc++/10063
|
||||
@ -358,7 +364,7 @@
|
||||
|
||||
PR libstdc++/11544
|
||||
PR libstdc++/11603
|
||||
* include/bits/fstream.tcc (underflow): Throw ios_base:failure
|
||||
* include/bits/fstream.tcc (underflow): Throw ios_base::failure
|
||||
upon incomplete or invalid byte sequences in the file.
|
||||
* testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc: New.
|
||||
* testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc: New.
|
||||
|
@ -258,6 +258,8 @@ namespace std
|
||||
streamsize __elen = _M_file.xsgetn(_M_ext_end, __rlen);
|
||||
if (__elen == 0)
|
||||
__got_eof = true;
|
||||
else if (__elen == -1)
|
||||
break;
|
||||
_M_ext_end += __elen;
|
||||
}
|
||||
|
||||
@ -306,9 +308,12 @@ namespace std
|
||||
__throw_ios_failure("basic_filebuf::underflow "
|
||||
"incomplete character in file");
|
||||
}
|
||||
else
|
||||
else if (__r == codecvt_base::error)
|
||||
__throw_ios_failure("basic_filebuf::underflow "
|
||||
"invalid byte sequence in file");
|
||||
else
|
||||
__throw_ios_failure("basic_filebuf::underflow "
|
||||
"error reading the file");
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user