diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-01-22 22:18:08 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-01-23 15:49:37 +0100 |
commit | 6c467f3f7e71029c6ef4b8a18d8900ff51eb1174 (patch) | |
tree | 73e97922ce14adc842fd47816e30a43671f818f3 | |
parent | d97d66e173b11a26015a99bed8467081d9c8733e (diff) | |
download | rneovim-6c467f3f7e71029c6ef4b8a18d8900ff51eb1174.tar.gz rneovim-6c467f3f7e71029c6ef4b8a18d8900ff51eb1174.tar.bz2 rneovim-6c467f3f7e71029c6ef4b8a18d8900ff51eb1174.zip |
coverity/133853: Out-of-bounds access
-rw-r--r-- | src/nvim/message.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c index 749fa8a706..91dd042777 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -381,20 +381,17 @@ static int other_sourcing_name(void) return FALSE; } -/* - * Get the message about the source, as used for an error message. - * Returns an allocated string with room for one more character. - * Returns NULL when no message is to be given. - */ +/// Get the message about the source, as used for an error message. +/// Returns an allocated string with room for one more character. +/// Returns NULL when no message is to be given. static char_u *get_emsg_source(void) { - char_u *Buf, *p; - if (sourcing_name != NULL && other_sourcing_name()) { - p = (char_u *)_("Error detected while processing %s:"); - Buf = xmalloc(STRLEN(sourcing_name) + STRLEN(p)); - sprintf((char *)Buf, (char *)p, sourcing_name); - return Buf; + char_u *p = (char_u *)_("Error detected while processing %s:"); + size_t len = STRLEN(sourcing_name) + STRLEN(p) + 1; + char_u *buf = xmalloc(len); + snprintf((char *)buf, len, (char *)p, sourcing_name); + return buf; } return NULL; } |