diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-04-28 17:48:44 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-04-28 17:48:44 +0200 |
commit | b453a53b59b55a399f0ff2e473cba796d95a2a0b (patch) | |
tree | 69308618256f5e2c9e8ec84580d10187f0e57693 | |
parent | 877b97b9531b70ee05b2c3338354980159e4f67b (diff) |
updated for version 7.3.169v7.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)
-rw-r--r-- | src/misc1.c | 12 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/misc1.c b/src/misc1.c index 8e3552ad67..76c9525796 100644 --- 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, one, startstr) * 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; diff --git a/src/version.c b/src/version.c index d4809d43aa..55f8ec3fd6 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 169, +/**/ 168, /**/ 167, |