X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=loadcfg.c;h=a2858b8238d421fd6442202218bdd526e552766d;hp=e5b656475d18307fcddaf638b698de47a05bcfce;hb=299a43a9012f4c361ff92b302e57990b3016bb64;hpb=41bf6ada0fed388cf0f11c2ca6a4bf0cebc01afe diff --git a/loadcfg.c b/loadcfg.c index e5b65647..a2858b82 100644 --- a/loadcfg.c +++ b/loadcfg.c @@ -1,4 +1,5 @@ -const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.11 2001/06/04 18:31:58 swa Exp $"; +/* vim:ts=3: */ +const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.13 2001/06/05 22:33:54 jongfoster Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $ @@ -35,6 +36,14 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.11 2001/06/04 18:31:58 swa Exp $" * * Revisions : * $Log: loadcfg.c,v $ + * Revision 1.13 2001/06/05 22:33:54 jongfoster + * + * Fixed minor memory leak. + * Also now uses make_path to prepend the pathnames. + * + * Revision 1.12 2001/06/05 20:04:09 jongfoster + * Now uses _snprintf() in place of snprintf() under Win32. + * * Revision 1.11 2001/06/04 18:31:58 swa * files are now prefixed with either `confdir' or `logdir'. * `make redhat-dist' replaces both entries confdir and logdir @@ -329,7 +338,6 @@ static struct file_list *current_configfile = NULL; #define hash_show_on_task_bar 215410365ul - /********************************************************************* * * Function : unload_configfile @@ -354,6 +362,9 @@ void unload_configfile (void * data) } #endif /* def JAR_FILES */ + freez((char *)config->confdir); + freez((char *)config->logdir); + freez((char *)config->haddr); freez((char *)config->logfile); @@ -399,7 +410,6 @@ struct configuration_spec * load_config(void) FILE *configfp = NULL; struct configuration_spec * config = NULL; struct client_state * fake_csp; - struct file_list *fs; if (!check_file_changed(current_configfile, configfile, &fs)) @@ -462,8 +472,6 @@ struct configuration_spec * load_config(void) char arg[BUFSIZ]; char tmp[BUFSIZ]; - char arg2[BUFSIZ]; - strcpy(tmp, buf); /* Copy command (i.e. up to space or tab) into cmd */ @@ -508,8 +516,7 @@ struct configuration_spec * load_config(void) #ifdef TRUST_FILES case hash_trustfile : freez((char *)config->trustfile); - snprintf(arg2, BUFSIZ, "%s/%s", config->confdir, arg); - config->trustfile = strdup(arg2); + config->trustfile = make_path(config->confdir, arg); continue; case hash_trust_info_url : @@ -522,10 +529,12 @@ struct configuration_spec * load_config(void) continue; case hash_confdir : + freez((char *)config->confdir); config->confdir = strdup(arg); continue; case hash_logdir : + freez((char *)config->logdir); config->logdir = strdup(arg); continue; @@ -535,21 +544,18 @@ struct configuration_spec * load_config(void) case hash_actions_file : freez((char *)config->actions_file); - snprintf(arg2, BUFSIZ, "%s/%s", config->confdir, arg); - config->actions_file = strdup(arg2); + config->actions_file = make_path(config->confdir, arg); continue; case hash_logfile : freez((char *)config->logfile); - snprintf(arg2, BUFSIZ, "%s/%s", config->logdir, arg); - config->logfile = strdup(arg2); + config->logfile = make_path(config->logdir, arg); continue; #ifdef JAR_FILES case hash_jarfile : freez((char *)config->jarfile); - snprintf(arg2, BUFSIZ, "%s/%s", config->logdir, arg); - config->jarfile = strdup(arg2); + config->jarfile = make_path(config->logdir, arg); continue; #endif /* def JAR_FILES */ @@ -560,22 +566,20 @@ struct configuration_spec * load_config(void) case hash_forwardfile : freez((char *)config->forwardfile); - snprintf(arg2, BUFSIZ, "%s/%s", config->confdir, arg); - config->forwardfile = strdup(arg2); + config->forwardfile = make_path(config->confdir, arg); continue; #ifdef ACL_FILES case hash_aclfile : freez((char *)config->aclfile); - snprintf(arg2, BUFSIZ, "%s/%s", config->confdir, arg); - config->aclfile = strdup(arg2); + config->aclfile = make_path(config->confdir, arg); continue; #endif /* def ACL_FILES */ #ifdef PCRS case hash_re_filterfile : freez((char *)config->re_filterfile); - config->re_filterfile = strdup(arg); + config->re_filterfile = make_path(config->confdir, arg); continue; #endif /* def PCRS */