Mercurial > vim
changeset 2786:5f45bacf31ef v7.3.169
updated for version 7.3.169
Problem: Freeing memory already freed, warning from static code analyzer.
Solution: Initialize pointers to NULL, correct use of "mustfree". (partly by
Dominique Pelle)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 28 Apr 2011 17:48:44 +0200 |
parents | 66b2cb6f9e39 |
children | 52775cc91f18 |
files | src/misc1.c src/version.c |
diffstat | 2 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/misc1.c +++ b/src/misc1.c @@ -3505,7 +3505,7 @@ init_homedir() if (enc_utf8 && var != NULL) { int len; - char_u *pp; + char_u *pp = NULL; /* Convert from active codepage to UTF-8. Other conversions are * not done, because they would fail for non-ASCII characters. */ @@ -3872,11 +3872,13 @@ expand_env_esc(srcp, dst, dstlen, esc, o * Vim's version of getenv(). * Special handling of $HOME, $VIM and $VIMRUNTIME. * Also does ACP to 'enc' conversion for Win32. + * "mustfree" is set to TRUE when returned is allocated, it must be + * initialized to FALSE by the caller. */ char_u * vim_getenv(name, mustfree) char_u *name; - int *mustfree; /* set to TRUE when returned is allocated */ + int *mustfree; { char_u *p; char_u *pend; @@ -3898,7 +3900,7 @@ vim_getenv(name, mustfree) if (enc_utf8) { int len; - char_u *pp; + char_u *pp = NULL; /* Convert from active codepage to UTF-8. Other conversions are * not done, because they would fail for non-ASCII characters. */ @@ -3942,7 +3944,7 @@ vim_getenv(name, mustfree) if (enc_utf8) { int len; - char_u *pp; + char_u *pp = NULL; /* Convert from active codepage to UTF-8. Other conversions * are not done, because they would fail for non-ASCII @@ -3950,7 +3952,7 @@ vim_getenv(name, mustfree) acp_to_enc(p, (int)STRLEN(p), &pp, &len); if (pp != NULL) { - if (mustfree) + if (*mustfree) vim_free(p); p = pp; *mustfree = TRUE;