diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-06-16 14:44:11 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-06-16 14:44:11 +0200 |
commit | 43dee181f596c81b99e200b6cdfeb02ecfed42c8 (patch) | |
tree | 68c29c214922451c7113393d00a80f9b19b0f717 /src/hardcopy.c | |
parent | 52d3aaeea4c85406f46e2051729e4f007f83b35e (diff) | |
download | vim-git-43dee181f596c81b99e200b6cdfeb02ecfed42c8.tar.gz |
patch 8.1.0056: crash when using :hardcopy with illegal bytev8.1.0056
Problem: Crash when using :hardcopy with illegal byte.
Solution: Check for string_convert() returning NULL. (Dominique Pelle)
Diffstat (limited to 'src/hardcopy.c')
-rw-r--r-- | src/hardcopy.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/hardcopy.c b/src/hardcopy.c index 91f62c39f..420ceb763 100644 --- a/src/hardcopy.c +++ b/src/hardcopy.c @@ -3372,8 +3372,9 @@ mch_print_start_line(int margin, int page_line) } int -mch_print_text_out(char_u *p, int len UNUSED) +mch_print_text_out(char_u *textp, int len UNUSED) { + char_u *p = textp; int need_break; char_u ch; char_u ch_buff[8]; @@ -3508,8 +3509,15 @@ mch_print_text_out(char_u *p, int len UNUSED) #ifdef FEAT_MBYTE 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) { |