@@ -1080,10 +1080,18 @@ nb_get_buf(int bufno)
10801080 {
10811081 if (bufno >= buf_list_size ) /* grow list */
10821082 {
1083+ nbbuf_T * t_buf_list = buf_list ;
1084+
10831085 incr = bufno - buf_list_size + 90 ;
10841086 buf_list_size += incr ;
10851087 buf_list = (nbbuf_T * )vim_realloc (
10861088 buf_list , buf_list_size * sizeof (nbbuf_T ));
1089+ if (buf_list == NULL )
1090+ {
1091+ vim_free (t_buf_list );
1092+ buf_list_size = 0 ;
1093+ return NULL ;
1094+ }
10871095 vim_memset (buf_list + buf_list_size - incr , 0 ,
10881096 incr * sizeof (nbbuf_T ));
10891097 }
@@ -3678,11 +3686,18 @@ addsigntype(
36783686 {
36793687 int incr ;
36803688 int oldlen = globalsignmaplen ;
3689+ char * * t_globalsignmap = globalsignmap ;
36813690
36823691 globalsignmaplen *= 2 ;
36833692 incr = globalsignmaplen - oldlen ;
36843693 globalsignmap = (char * * )vim_realloc (globalsignmap ,
36853694 globalsignmaplen * sizeof (char * ));
3695+ if (globalsignmap == NULL )
3696+ {
3697+ vim_free (t_globalsignmap );
3698+ globalsignmaplen = 0 ;
3699+ return ;
3700+ }
36863701 vim_memset (globalsignmap + oldlen , 0 , incr * sizeof (char * ));
36873702 }
36883703 }
@@ -3708,11 +3723,18 @@ addsigntype(
37083723 {
37093724 int incr ;
37103725 int oldlen = buf -> signmaplen ;
3726+ int * t_signmap = buf -> signmap ;
37113727
37123728 buf -> signmaplen *= 2 ;
37133729 incr = buf -> signmaplen - oldlen ;
37143730 buf -> signmap = (int * )vim_realloc (buf -> signmap ,
37153731 buf -> signmaplen * sizeof (int ));
3732+ if (buf -> signmap == NULL )
3733+ {
3734+ vim_free (t_signmap );
3735+ buf -> signmaplen = 0 ;
3736+ return ;
3737+ }
37163738 vim_memset (buf -> signmap + oldlen , 0 , incr * sizeof (int ));
37173739 }
37183740 }
0 commit comments