mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.1.0056: crash when using :hardcopy with illegal byte
Problem: Crash when using :hardcopy with illegal byte.
Solution: Check for string_convert() returning NULL. (Dominique Pelle)
43dee181f5
This commit is contained in:
parent
2ea619c10b
commit
8441af37d8
@ -2882,8 +2882,9 @@ void mch_print_start_line(int margin, int page_line)
|
||||
prt_half_width = FALSE;
|
||||
}
|
||||
|
||||
int mch_print_text_out(char_u *p, size_t len)
|
||||
int mch_print_text_out(char_u *textp, size_t len)
|
||||
{
|
||||
char_u *p = textp;
|
||||
int need_break;
|
||||
char_u ch;
|
||||
char_u ch_buff[8];
|
||||
@ -2996,6 +2997,10 @@ int mch_print_text_out(char_u *p, size_t len)
|
||||
if (prt_do_conv) {
|
||||
// Convert from multi-byte to 8-bit encoding
|
||||
tofree = p = string_convert(&prt_conv, p, &len);
|
||||
if (p == NULL) {
|
||||
p = (char_u *)"";
|
||||
len = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (prt_out_mbyte) {
|
||||
|
@ -63,12 +63,27 @@ func Test_with_syntax()
|
||||
endfunc
|
||||
|
||||
func Test_fname_with_spaces()
|
||||
if has('postscript')
|
||||
if !has('postscript')
|
||||
return
|
||||
endif
|
||||
split t\ e\ s\ t.txt
|
||||
call setline(1, ['just', 'some', 'text'])
|
||||
hardcopy > %.ps
|
||||
call assert_true(filereadable('t e s t.txt.ps'))
|
||||
call delete('t e s t.txt.ps')
|
||||
bwipe!
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_illegal_byte()
|
||||
if !has('postscript') || &enc != 'utf-8'
|
||||
return
|
||||
endif
|
||||
new
|
||||
" conversion of 0xff will fail, this used to cause a crash
|
||||
call setline(1, "\xff")
|
||||
hardcopy >Xpstest
|
||||
|
||||
bwipe!
|
||||
call delete('Xpstest')
|
||||
endfunc
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user