diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-01-04 02:29:22 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-01-04 02:29:22 +0100 |
commit | 6a432d4a0d48829d45b717c0ee1a1a880ef39847 (patch) | |
tree | fa4f0774d032c23364e58af850b301913751c24d /src/nvim/diff.c | |
parent | a1e97b18f1c90fb85683bd09b597511cdf14a34e (diff) | |
download | rneovim-6a432d4a0d48829d45b717c0ee1a1a880ef39847.tar.gz rneovim-6a432d4a0d48829d45b717c0ee1a1a880ef39847.tar.bz2 rneovim-6a432d4a0d48829d45b717c0ee1a1a880ef39847.zip |
PVS/V547: diff.c: xmalloc() never returns NULL
Normally we consider OOM to be fatal, but the diff module has extra
functionality to handle OOM in case huge files are compared. Use
try_malloc instead of xmalloc in that case.
Diffstat (limited to 'src/nvim/diff.c')
-rw-r--r-- | src/nvim/diff.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/nvim/diff.c b/src/nvim/diff.c index 0209c8251a..e0cd285667 100644 --- a/src/nvim/diff.c +++ b/src/nvim/diff.c @@ -695,7 +695,7 @@ static int diff_write_buffer(buf_T *buf, diffin_T *din) for (lnum = 1; lnum <= buf->b_ml.ml_line_count; lnum++) { len += (long)STRLEN(ml_get_buf(buf, lnum, false)) + 1; } - ptr = xmalloc(len); + ptr = try_malloc(len); if (ptr == NULL) { // Allocating memory failed. This can happen, because we try to read // the whole buffer text into memory. Set the failed flag, the diff @@ -1088,9 +1088,6 @@ static int diff_file(diffio_T *dio) const size_t len = (strlen(tmp_orig) + strlen(tmp_new) + strlen(tmp_diff) + STRLEN(p_srr) + 27); char *const cmd = xmalloc(len); - if (cmd == NULL) { - return FAIL; - } // We don't want $DIFF_OPTIONS to get in the way. if (os_getenv("DIFF_OPTIONS")) { |