Commit c3979308 authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

msvcrt: Handle negative file->_cnt value in _flsbuf function.

parent 9d538e43
......@@ -3088,7 +3088,7 @@ int CDECL MSVCRT__flsbuf(int c, MSVCRT_FILE* file)
if(file->_bufsiz) {
int res = 0;
if(file->_cnt == 0)
if(file->_cnt <= 0)
res = msvcrt_flush_buffer(file);
if(!res) {
*file->_ptr++ = c;
......
......@@ -544,10 +544,21 @@ static void test_flsbuf( void )
bufmodes[bufmode], 0, ret);
ret = _flsbuf(0xff,tempfh);
ok(0xff == ret, "_flsbuf(0xff,tempfh) with bufmode %x expected %x got %x\n",
bufmodes[bufmode], 0, ret);
bufmodes[bufmode], 0xff, ret);
ret = _flsbuf(0xffffffff,tempfh);
ok(0xff == ret, "_flsbuf(0xffffffff,tempfh) with bufmode %x expected %x got %x\n",
bufmodes[bufmode], 0, ret);
bufmodes[bufmode], 0xff, ret);
if(tempfh->_base) {
fputc('x', tempfh);
tempfh->_cnt = -1;
tempfh->_base[1] = 'a';
ret = _flsbuf(0xab,tempfh);
ok(ret == 0xab, "_flsbuf(0xab,tempfh) with bufmode %x expected 0xab got %x\n",
bufmodes[bufmode], ret);
ok(tempfh->_base[1] == 'a', "tempfh->_base[1] should not be changed (%d)\n",
tempfh->_base[1]);
}
fclose(tempfh);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment