To: vim-dev@vim.org
Subject: Patch 7.2.036 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.036 (extra)
Problem: Mismatches between alloc/malloc, free/vim_free,
realloc/vim_realloc.
Solution: Use the right function. (Dominique Pelle)
Files: src/gui_riscos.c, src/gui_w48.c, src/mbyte.c, src/os_vms.c,
src/os_w32exe.c, src/os_win16.c
*** ../vim-7.2.035/src/gui_riscos.c Thu May 10 19:33:26 2007
--- src/gui_riscos.c Wed Nov 12 11:47:54 2008
***************
*** 695,701 ****
gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
int width; /* In OS units */
int height;
! int min_width; /* Smallest permissable window size (ignored) */
int min_height;
int base_width; /* Space for scroll bars, etc */
int base_height;
--- 695,701 ----
gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
int width; /* In OS units */
int height;
! int min_width; /* Smallest permissible window size (ignored) */
int min_height;
int base_width; /* Space for scroll bars, etc */
int base_height;
***************
*** 863,869 ****
if (strncmp(file, "ZapFont\015", 8) == 0)
return file; /* Loaded OK! */
! free(file);
return NULL; /* Not a valid font file */
}
--- 863,869 ----
if (strncmp(file, "ZapFont\015", 8) == 0)
return file; /* Loaded OK! */
! vim_free(file);
return NULL; /* Not a valid font file */
}
*** ../vim-7.2.035/src/gui_w48.c Thu Jul 24 20:50:23 2008
--- src/gui_w48.c Wed Nov 12 11:37:41 2008
***************
*** 3335,3341 ****
/*
* Convert the string s to the proper format for a filter string by replacing
! * the \t and \n delimeters with \0.
* Returns the converted string in allocated memory.
*
* Keep in sync with convert_filterW() above!
--- 3335,3341 ----
/*
* Convert the string s to the proper format for a filter string by replacing
! * the \t and \n delimiters with \0.
* Returns the converted string in allocated memory.
*
* Keep in sync with convert_filterW() above!
***************
*** 3674,3680 ****
* Use "prog" as the name of the program and "cmdline" as the arguments.
* Copy the arguments to allocated memory.
* Return the number of arguments (including program name).
! * Return pointers to the arguments in "argvp".
* Return pointer to buffer in "tofree".
* Returns zero when out of memory.
*/
--- 3674,3681 ----
* Use "prog" as the name of the program and "cmdline" as the arguments.
* Copy the arguments to allocated memory.
* Return the number of arguments (including program name).
! * Return pointers to the arguments in "argvp". Memory is allocated with
! * malloc(), use free() instead of vim_free().
* Return pointer to buffer in "tofree".
* Returns zero when out of memory.
*/
***************
*** 3692,3697 ****
--- 3693,3700 ----
char **argv = NULL;
int round;
+ *tofree = NULL;
+
#ifdef FEAT_MBYTE
/* Try using the Unicode version first, it takes care of conversion when
* 'encoding' is changed. */
***************
*** 3802,3816 ****
argv = (char **)malloc((argc + 1) * sizeof(char *));
if (argv == NULL )
{
! vim_free(newcmdline);
return 0; /* malloc error */
}
pnew = newcmdline;
}
}
done:
-
argv[argc] = NULL; /* NULL-terminated list */
*argvp = argv;
return argc;
--- 3805,3819 ----
argv = (char **)malloc((argc + 1) * sizeof(char *));
if (argv == NULL )
{
! free(newcmdline);
return 0; /* malloc error */
}
pnew = newcmdline;
+ *tofree = newcmdline;
}
}
done:
argv[argc] = NULL; /* NULL-terminated list */
*argvp = argv;
return argc;
*** ../vim-7.2.035/src/os_vms.c Wed Aug 6 18:38:52 2008
--- src/os_vms.c Wed Nov 12 11:42:12 2008
***************
*** 228,234 ****
else if ((sbuf = getenv((char *)lognam)))
{
lengte = strlen(sbuf) + 1;
! cp = (char_u *)malloc((size_t)lengte);
if (cp)
strcpy((char *)cp, sbuf);
return cp;
--- 228,234 ----
else if ((sbuf = getenv((char *)lognam)))
{
lengte = strlen(sbuf) + 1;
! cp = (char_u *)alloc((size_t)lengte);
if (cp)
strcpy((char *)cp, sbuf);
return cp;
***************
*** 381,387 ****
if (--vms_match_free == 0) {
/* add more space to store matches */
vms_match_alloced += EXPL_ALLOC_INC;
! vms_fmatch = (char_u **)realloc(vms_fmatch,
sizeof(char **) * vms_match_alloced);
if (!vms_fmatch)
return 0;
--- 381,387 ----
if (--vms_match_free == 0) {
/* add more space to store matches */
vms_match_alloced += EXPL_ALLOC_INC;
! vms_fmatch = (char_u **)vim_realloc(vms_fmatch,
sizeof(char **) * vms_match_alloced);
if (!vms_fmatch)
return 0;
***************
*** 460,466 ****
if (--files_free < 1)
{
files_alloced += EXPL_ALLOC_INC;
! *file = (char_u **)realloc(*file,
sizeof(char_u **) * files_alloced);
if (*file == NULL)
{
--- 460,466 ----
if (--files_free < 1)
{
files_alloced += EXPL_ALLOC_INC;
! *file = (char_u **)vim_realloc(*file,
sizeof(char_u **) * files_alloced);
if (*file == NULL)
{
***************
*** 614,627 ****
{
buflen = len + 128;
if (buf)
! buf = (char *)realloc(buf, buflen);
else
! buf = (char *)calloc(buflen, sizeof(char));
}
#ifdef DEBUG
char *tmpbuf = NULL;
! tmpbuf = (char *)calloc(buflen, sizeof(char));
strcpy(tmpbuf, instring);
#endif
--- 614,627 ----
{
buflen = len + 128;
if (buf)
! buf = (char *)vim_realloc(buf, buflen);
else
! buf = (char *)alloc(buflen * sizeof(char));
}
#ifdef DEBUG
char *tmpbuf = NULL;
! tmpbuf = (char *)alloc(buflen * sizeof(char));
strcpy(tmpbuf, instring);
#endif
*** ../vim-7.2.035/src/os_w32exe.c Fri Jul 1 00:06:20 2005
--- src/os_w32exe.c Wed Nov 12 11:45:43 2008
***************
*** 129,135 ****
errout:
#endif
free(argv);
! free(tofree);
#ifdef FEAT_MBYTE
free_cmd_argsW();
#endif
--- 129,136 ----
errout:
#endif
free(argv);
! if (tofree != NULL)
! free(tofree);
#ifdef FEAT_MBYTE
free_cmd_argsW();
#endif
*** ../vim-7.2.035/src/os_win16.c Wed Jun 25 00:49:34 2008
--- src/os_win16.c Wed Nov 12 11:45:53 2008
***************
*** 121,127 ****
pmain(argc, argv);
free(argv);
! free(tofree);
return 0;
}
--- 121,128 ----
pmain(argc, argv);
free(argv);
! if (tofree != NULL)
! free(tofree);
return 0;
}
*** ../vim-7.2.035/src/version.c Wed Nov 12 13:07:48 2008
--- src/version.c Wed Nov 12 13:28:51 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 36,
/**/
--
hundred-and-one symptoms of being an internet addict:
239. You think "surfing" is something you do on dry land.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///