diff options
author | Javier Lopez <graulopezjavier@gmail.com> | 2021-11-23 23:07:47 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-23 21:07:47 -0700 |
commit | a2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd (patch) | |
tree | 741a6d16b8439853e79256b4d475ec18d54b6c54 /src | |
parent | dd8a4e2c22ea8018ce3af989134b1e9c4607ce37 (diff) | |
download | rneovim-a2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd.tar.gz rneovim-a2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd.tar.bz2 rneovim-a2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd.zip |
fix(fileio): replace characters over INT_MAX with U+FFFD (#16354)
fixes #11877
credit: @zubairabid https://github.com/neovim/neovim/pull/12010
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/fileio.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c index 7573064fa9..1b39a7410a 100644 --- a/src/nvim/fileio.c +++ b/src/nvim/fileio.c @@ -1360,6 +1360,10 @@ retry: u8c += (unsigned)(*--p) << 16; u8c += (unsigned)(*--p) << 24; } + // Replace characters over INT_MAX with Unicode replacement character + if (u8c > INT_MAX) { + u8c = 0xfffd; + } } else { // UTF-8 if (*--p < 0x80) { u8c = *p; |