Module: wine Branch: master Commit: ed2d53a36aa413e00c577e11772915bc5de4161e URL: http://source.winehq.org/git/wine.git/?a=commit;h=ed2d53a36aa413e00c577e1177...
Author: Piotr Caban piotr@codeweavers.com Date: Mon Dec 30 16:55:59 2013 +0100
msvcrt: Don't write to buffer in ungetc if _IOSTRG flag is specified.
---
dlls/msvcrt/file.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 4665e6b..04651fb 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -4713,7 +4713,15 @@ int CDECL MSVCRT_ungetc(int c, MSVCRT_FILE * file) file->_ptr++; if(file->_ptr>file->_base) { file->_ptr--; - *file->_ptr=c; + if(file->_flag & MSVCRT__IOSTRG) { + if(*file->_ptr != c) { + file->_ptr++; + MSVCRT__unlock_file(file); + return MSVCRT_EOF; + } + }else { + *file->_ptr = c; + } file->_cnt++; MSVCRT_clearerr(file); MSVCRT__unlock_file(file);