From: Ulrich Drepper Date: Thu, 25 Feb 2010 00:07:57 +0000 (-0800) Subject: Fix reporting of I/O errors in *dprintf functions. X-Git-Tag: fedora/glibc-2.11.90-15~1^2~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ca890b88e6ab7624afb1742a9fffb37ad5b3fc3;p=thirdparty%2Fglibc.git Fix reporting of I/O errors in *dprintf functions. --- diff --git a/ChangeLog b/ChangeLog index 5271d24ac54..25691cd6ece 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,13 @@ 2010-02-24 Ulrich Drepper + [BZ #11319] + * libio/iovdprintf.c (_IO_vdprintf): Explicitly flush stream before + undoing the stream because _IO_FINISH doesn't report failures. + [BZ #5553] * malloc/malloc.c (public_vALLOc): Set ar_ptr when trying main_arena. (public_pVALLOc): Likewise. + Patch by Petr Baudis. 2010-02-22 Jim Meyering diff --git a/libio/iovdprintf.c b/libio/iovdprintf.c index edab849a449..5284ff89380 100644 --- a/libio/iovdprintf.c +++ b/libio/iovdprintf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1997-2000, 2001, 2002, 2003, 2006 +/* Copyright (C) 1995, 1997-2000, 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -60,6 +60,9 @@ _IO_vdprintf (d, format, arg) done = INTUSE(_IO_vfprintf) (&tmpfil.file, format, arg); + if (done != EOF && _IO_do_flush (&tmpfil.file) == EOF) + done = EOF; + _IO_FINISH (&tmpfil.file); return done;