[1/5] msvcrt: Free old buffer properly in setvbuf.
Grazvydas Ignotas
notasas at gmail.com
Fri Jun 13 18:23:54 CDT 2014
Solves user's buffer being incorrectly freed on fclose/setvbuf after
custom buffer has been set with setvbuf.
---
dlls/msvcrt/file.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index 7ebf6d2..7590510 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -4465,7 +4465,10 @@ int CDECL MSVCRT_setvbuf(MSVCRT_FILE* file, char *buf, int mode, MSVCRT_size_t s
{
MSVCRT__lock_file(file);
if(file->_bufsiz) {
- MSVCRT_free(file->_base);
+ if(file->_flag & MSVCRT__IOMYBUF)
+ MSVCRT_free(file->_base);
+ file->_flag &= ~MSVCRT__IOMYBUF;
+ file->_base = file->_ptr = NULL;
file->_bufsiz = 0;
file->_cnt = 0;
}
--
1.7.9.5
More information about the wine-patches
mailing list