X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=loadcfg.c;h=a2858b8238d421fd6442202218bdd526e552766d;hb=83de7bee2cd2354985095b343d4cb21ac525fe50;hp=4bb99d13977d9c3ee6838eb108615fcc1763636d;hpb=52688cf7f811e1452ebd86f374628953f7ad7420;p=privoxy.git diff --git a/loadcfg.c b/loadcfg.c index 4bb99d13..a2858b82 100644 --- a/loadcfg.c +++ b/loadcfg.c @@ -1,4 +1,5 @@ -const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.10 2001/06/03 19:11:54 oes 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,19 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.10 2001/06/03 19:11:54 oes 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 + * with redhat values + * * Revision 1.10 2001/06/03 19:11:54 oes * introduced confdir option * @@ -227,6 +241,9 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.10 2001/06/03 19:11:54 oes Exp $" # include "w32log.h" # endif /* ndef _WIN_CONSOLE */ +/* VC++ has "_snprintf", not "snprintf" */ +#define snprintf _snprintf + #else /* ifndef _WIN32 */ # include @@ -321,7 +338,6 @@ static struct file_list *current_configfile = NULL; #define hash_show_on_task_bar 215410365ul - /********************************************************************* * * Function : unload_configfile @@ -346,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); @@ -391,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)) @@ -454,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 */ @@ -500,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 : @@ -514,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; @@ -527,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 */ @@ -552,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 */