comparison src/insexpand.c @ 34603:02fbe0bd9418 v9.1.0193

patch 9.1.0193: May leak memory in completion when ga_grow() fails Commit: https://github.com/vim/vim/commit/70e566b0bd29189b1baf3dc915b6a98de36fbded Author: zeertzjq <zeertzjq@outlook.com> Date: Thu Mar 21 07:11:58 2024 +0100 patch 9.1.0193: May leak memory in completion when ga_grow() fails Problem: May leak memory in completion when ga_grow() fails. Solution: Free "wca" when ga_grow() fails (zeertzjq). fixes: #14248 closes: #14249 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 21 Mar 2024 07:15:05 +0100
parents 5a8340e044f4
children 6d3a5ef458cd
comparison
equal deleted inserted replaced
34602:c7680d286e1f 34603:02fbe0bd9418
651 // Multi-byte characters can occupy up to five bytes more than 651 // Multi-byte characters can occupy up to five bytes more than
652 // ASCII characters, and we also need one byte for NUL, so when 652 // ASCII characters, and we also need one byte for NUL, so when
653 // getting to six bytes from the edge of IObuff switch to using a 653 // getting to six bytes from the edge of IObuff switch to using a
654 // growarray. Add the character in the next round. 654 // growarray. Add the character in the next round.
655 if (ga_grow(&gap, IOSIZE) == FAIL) 655 if (ga_grow(&gap, IOSIZE) == FAIL)
656 {
657 vim_free(wca);
656 return (char_u *)"[failed]"; 658 return (char_u *)"[failed]";
659 }
657 *p = NUL; 660 *p = NUL;
658 STRCPY(gap.ga_data, IObuff); 661 STRCPY(gap.ga_data, IObuff);
659 gap.ga_len = (int)STRLEN(IObuff); 662 gap.ga_len = (int)STRLEN(IObuff);
660 } 663 }
661 else if (has_mbyte) 664 else if (has_mbyte)