aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJavier Lopez <graulopezjavier@gmail.com>2021-11-23 23:07:47 -0500
committerGitHub <noreply@github.com>2021-11-23 21:07:47 -0700
commita2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd (patch)
tree741a6d16b8439853e79256b4d475ec18d54b6c54 /src
parentdd8a4e2c22ea8018ce3af989134b1e9c4607ce37 (diff)
downloadrneovim-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.c4
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;