From 8bcf1ed4d6a9dfcb196682b551f0ebb00cf93fc8 Mon Sep 17 00:00:00 2001 From: Peter Clifton Date: Wed, 24 Feb 2010 00:04:11 +0000 Subject: [PATCH] Use strdup to copy environment strings into our settings structure. getenv returns a const char * which is part of the environment and must not be free'd. --- src/main.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index 400aebc3..bb79991e 100644 --- a/src/main.c +++ b/src/main.c @@ -563,6 +563,8 @@ REGISTER_ATTRIBUTES (main_attribute_list) */ static void settings_post_process () { + char *tmps; + if (Settings.LibraryCommand[0] != PCB_DIR_SEPARATOR_C && Settings.LibraryCommand[0] != '.') { Settings.LibraryCommand @@ -602,14 +604,18 @@ REGISTER_ATTRIBUTES (main_attribute_list) * to call */ if (Settings.MakeProgram == NULL) { - Settings.MakeProgram = getenv ("PCB_MAKE_PROGRAM"); + tmps = getenv ("PCB_MAKE_PROGRAM"); + if (tmps != NULL) + Settings.MakeProgram = strdup (tmps); } if (Settings.MakeProgram == NULL) { Settings.MakeProgram = strdup ("make"); } if (Settings.GnetlistProgram == NULL) { - Settings.GnetlistProgram = getenv ("PCB_GNETLIST"); + tmps = getenv ("PCB_GNETLIST"); + if (tmps != NULL) + Settings.GnetlistProgram = strdup (tmps); } if (Settings.GnetlistProgram == NULL) { Settings.GnetlistProgram = strdup ("gnetlist"); -- 2.11.4.GIT