comparison src/netbeans.c @ 22590:13f4aee01ce5 v8.2.1843

patch 8.2.1843: Netbeans: with huge buffer number memory allocation may fail Commit: https://github.com/vim/vim/commit/b9616af23f31fc18721a92643c21f42b69854efe Author: Bram Moolenaar <Bram@vim.org> Date: Tue Oct 13 21:11:13 2020 +0200 patch 8.2.1843: Netbeans: with huge buffer number memory allocation may fail Problem: Netbeans: with huge buffer number memory allocation may fail. Solution: Check for size overflow.
author Bram Moolenaar <Bram@vim.org>
date Tue, 13 Oct 2020 21:15:05 +0200
parents b378f860d4ab
children 70eb58639009
comparison
equal deleted inserted replaced
22589:97f5ed911b24 22590:13f4aee01ce5
672 } 672 }
673 if (bufno >= buf_list_used) // new 673 if (bufno >= buf_list_used) // new
674 { 674 {
675 if (bufno >= buf_list_size) // grow list 675 if (bufno >= buf_list_size) // grow list
676 { 676 {
677 nbbuf_T *t_buf_list = buf_list; 677 nbbuf_T *t_buf_list = buf_list;
678 size_t bufsize;
678 679
679 incr = bufno - buf_list_size + 90; 680 incr = bufno - buf_list_size + 90;
680 buf_list_size += incr; 681 buf_list_size += incr;
681 buf_list = vim_realloc(buf_list, buf_list_size * sizeof(nbbuf_T)); 682 bufsize = buf_list_size * sizeof(nbbuf_T);
683 if (bufsize == 0 || bufsize / sizeof(nbbuf_T)
684 != (size_t)buf_list_size)
685 {
686 // list size overflow, bail out
687 return NULL;
688 }
689 buf_list = vim_realloc(buf_list, bufsize);
682 if (buf_list == NULL) 690 if (buf_list == NULL)
683 { 691 {
684 vim_free(t_buf_list); 692 vim_free(t_buf_list);
685 buf_list_size = 0; 693 buf_list_size = 0;
686 return NULL; 694 return NULL;