Problem: Using uninitialized memory when reading empty file.
Solution: Check for empty file before checking for NL. (Dominique Pellé,
closes #9511)
p < buf + readlen || (readlen <= 0 && (prevlen > 0 || binary));
++p)
{
- if (*p == '\n' || readlen <= 0)
+ if (readlen <= 0 || *p == '\n')
{
listitem_T *li;
char_u *s = NULL;
call delete('XReadfile_bin')
endfunc
+func Test_readfile_binary_empty()
+ call writefile([], 'Xempty-file')
+ " This used to compare uninitialized memory in Vim <= 8.2.4065
+ call assert_equal([''], readfile('Xempty-file', 'b'))
+ call delete('Xempty-file')
+endfunc
+
func Test_readfile_bom()
call writefile(["\ufeffFOO", "FOO\ufeffBAR"], 'XReadfile_bom')
call assert_equal(['FOO', 'FOOBAR'], readfile('XReadfile_bom'))
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 4070,
/**/
4069,
/**/