From bcde12940007e836f7b831f1cdfda8dc2bda0c58 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Fri, 24 Apr 2009 22:52:52 +0000 Subject: 2009-04-24 Jeff johnston * libc/stdio/fgetc.c: Make sure sfp lock is acquired before the file lock and released before the file lock to avoid a deadlock scenario. * libc/stdio/fgets.c: Ditto. * libc/stdio/fgetwc.c: Ditto. * libc/stdio/fgetws.c: Ditto. * libc/stdio/fread.c: Ditto. * libc/stdio/fseek.c: Ditto. * libc/stdio/getc.c: Ditto. * libc/stdio/getdelim.c: Ditto. * libc/stdio/gets.c: Ditto. --- newlib/libc/stdio/getc.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'newlib/libc/stdio/getc.c') diff --git a/newlib/libc/stdio/getc.c b/newlib/libc/stdio/getc.c index 5b1fa888a..544ac734c 100644 --- a/newlib/libc/stdio/getc.c +++ b/newlib/libc/stdio/getc.c @@ -92,9 +92,11 @@ _DEFUN(_getc_r, (ptr, fp), { int result; CHECK_INIT (ptr, fp); + __sfp_lock_acquire (); _flockfile (fp); result = __sgetc_r (ptr, fp); _funlockfile (fp); + __sfp_lock_release (); return result; } @@ -106,9 +108,11 @@ _DEFUN(getc, (fp), { int result; CHECK_INIT (_REENT, fp); + __sfp_lock_acquire (); _flockfile (fp); result = __sgetc_r (_REENT, fp); _funlockfile (fp); + __sfp_lock_release (); return result; } -- cgit v1.2.3