Patch 8.2.1880

12 views
Skip to first unread message

Bram Moolenaar

unread,
Oct 21, 2020, 10:50:26 AM10/21/20
to vim...@googlegroups.com

Patch 8.2.1880
Problem: Vim9: Asan complains about adding zero to NULL.
Solution: Check for argument count first.
Files: src/vim9compile.c


*** ../vim-8.2.1879/src/vim9compile.c 2020-10-21 16:42:18.517821898 +0200
--- src/vim9compile.c 2020-10-21 16:47:57.057129882 +0200
***************
*** 1475,1485 ****
isn->isn_arg.shuffle.shfl_up = argoff - 1;
}

! // Check the types of the arguments.
! argtypes = ((type_T **)stack->ga_data) + stack->ga_len - argcount;
! if (argcount > 0 && internal_func_check_arg_types(
! argtypes, func_idx, argcount) == FAIL)
return FAIL;

if ((isn = generate_instr(cctx, ISN_BCALL)) == NULL)
return FAIL;
--- 1475,1487 ----
isn->isn_arg.shuffle.shfl_up = argoff - 1;
}

! if (argcount > 0)
! {
! // Check the types of the arguments.
! argtypes = ((type_T **)stack->ga_data) + stack->ga_len - argcount;
! if (internal_func_check_arg_types(argtypes, func_idx, argcount) == FAIL)
return FAIL;
+ }

if ((isn = generate_instr(cctx, ISN_BCALL)) == NULL)
return FAIL;
*** ../vim-8.2.1879/src/version.c 2020-10-21 16:42:18.517821898 +0200
--- src/version.c 2020-10-21 16:48:57.637012434 +0200
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 1880,
/**/

--
hundred-and-one symptoms of being an internet addict:
96. On Super Bowl Sunday, you followed the score by going to the
Yahoo main page instead of turning on the TV.

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

John Marriott

unread,
Oct 21, 2020, 2:12:35 PM10/21/20
to vim...@googlegroups.com

On 22-Oct-2020 01:50, Bram Moolenaar wrote:
> Patch 8.2.1880
> Problem: Vim9: Asan complains about adding zero to NULL.
> Solution: Check for argument count first.
> Files: src/vim9compile.c
>
>
>
After this patch mingw64 (gcc 10.2) throws this warning:
<snip>
gcc -c -I. -Iproto -DWIN32 -DWINVER=0x0603 -D_WIN32_WINNT=0x0603
-DHAVE_PATHDEF -DFEAT_NORMAL -DHAVE_STDINT_H -D__USE_MINGW_ANSI_STDIO
-pipe -march=native -Wall -O3 -fomit-frame-pointer -freg-struct-return
-fpie -fPIE -DFEAT_GUI_MSWIN -DFEAT_CLIPBOARD vim9compile.c -o
gobjnative/vim9compile.o
vim9compile.c: In function 'compile_call':
vim9compile.c:1496:6: warning: 'argtypes' may be used uninitialized in
this function [-Wmaybe-uninitialized]
 1496 |      internal_func_ret_type(func_idx, argcount, argtypes);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim9compile.c:1463:14: note: 'argtypes' was declared here
 1463 |     type_T **argtypes;
      |              ^~~~~~~~
</snip>

Not sure what the fix should be. Perhaps as simple as initialising
argtypes to NULL?

Cheers
John

Bram Moolenaar

unread,
Oct 21, 2020, 4:37:55 PM10/21/20
to vim...@googlegroups.com, John Marriott
Using NULL should work.

--
Contrary to popular belief, Unix is user friendly.
It just happens to be selective about who it makes friends with.
-- Dave Parnas
Reply all
Reply to author
Forward
0 new messages