From c2c7bd3f865be02443c65e9a4e57b7d96cde145a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 7 Jul 2007 18:29:30 +0000 Subject: [BZ #4745] 2007-07-07 Ulrich Drepper [BZ #4745] * libio/strops.c (_IO_str_underflow): Clear errno before returning EOF. * stdio-common/Makefile (tests): Add bug18. * stdio-common/bug18.c: New file. --- libio/strops.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'libio/strops.c') diff --git a/libio/strops.c b/libio/strops.c index 05270ce407..c3222e0803 100644 --- a/libio/strops.c +++ b/libio/strops.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997-2003, 2004, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997-2004, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -166,7 +166,12 @@ _IO_str_underflow (fp) if (fp->_IO_read_ptr < fp->_IO_read_end) return *((unsigned char *) fp->_IO_read_ptr); else - return EOF; + { + /* We have to reset errno since callers check for errno being + EINTR and there has been no such problem here. */ + __set_errno (0); + return EOF; + } } INTDEF(_IO_str_underflow) -- cgit 1.4.1