From c825464c2f06bd38c639d61ad07de47b50c72bbc Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 16 Dec 2009 16:08:17 +0000 Subject: [PATCH] Allocate memory only if we're going to overwrite an environment variable --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404332 --- src/stdlib/SDL_getenv.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/stdlib/SDL_getenv.c b/src/stdlib/SDL_getenv.c index 89d3386c1..02b9348ac 100644 --- a/src/stdlib/SDL_getenv.c +++ b/src/stdlib/SDL_getenv.c @@ -93,6 +93,11 @@ SDL_setenv(const char *name, const char *value, int overwrite) return (-1); } + /* See if it already exists */ + if (!overwrite && SDL_getenv(name)) { + return 0; + } + /* Allocate memory for the variable */ len = SDL_strlen(name) + SDL_strlen(value) + 2; new_variable = (char *) SDL_malloc(len); @@ -117,10 +122,6 @@ SDL_setenv(const char *name, const char *value, int overwrite) } /* If we found it, just replace the entry */ if (SDL_env[i]) { - if (!overwrite) { - SDL_free(new_variable); - return 0; - } SDL_free(SDL_env[i]); SDL_env[i] = new_variable; added = 1;