From 4a794c146e58f10506aa21f59926fc535123fab2 Mon Sep 17 00:00:00 2001 From: paolo Date: Fri, 7 Mar 2003 22:20:18 +0000 Subject: [PATCH] 2003-03-07 Paolo Carlini * include/bits/fstream.tcc (_M_convert_to_external): Set __elen to zero if codecvt::out eventually fails. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63954 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/include/bits/fstream.tcc | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5298239337a..6359e773a9c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2003-03-07 Paolo Carlini + * include/bits/fstream.tcc (_M_convert_to_external): + Set __elen to zero if codecvt::out eventually fails. + +2003-03-07 Paolo Carlini + PR libstdc++/9182 * include/bits/fstream.tcc (_M_really_overflow): Check for _M_convert_to_external possible failures. diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc index 484ed7be057..568c08c4729 100644 --- a/libstdc++-v3/include/bits/fstream.tcc +++ b/libstdc++-v3/include/bits/fstream.tcc @@ -320,8 +320,13 @@ namespace std __iend, __buf, __buf + __blen, __bend); if (__r != codecvt_base::error) __rlen = __bend - __buf; - else - __rlen = 0; + else + { + __rlen = 0; + // Signal to the caller (_M_really_overflow) that + // codecvt::out eventually failed. + __elen = 0; + } if (__rlen) { __elen += _M_file.xsputn(__buf, __rlen); -- 2.11.0