projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for (re-)compression of buffered content and CGI responses.
[privoxy.git]
/
loadcfg.c
diff --git
a/loadcfg.c
b/loadcfg.c
index
ff90b07
..
899e430
100644
(file)
--- a/
loadcfg.c
+++ b/
loadcfg.c
@@
-1,4
+1,4
@@
-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.11
0 2010/07/21 14:29:59 fabiankeil
Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.11
1 2010/08/14 23:28:52 ler762
Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
@@
-292,7
+292,7
@@
void unload_current_config_file(void)
*********************************************************************/
struct configuration_spec * load_config(void)
{
*********************************************************************/
struct configuration_spec * load_config(void)
{
- char
buf[BUFFER_SIZE]
;
+ char
*buf = NULL
;
char *p, *q;
FILE *configfp = NULL;
struct configuration_spec * config = NULL;
char *p, *q;
FILE *configfp = NULL;
struct configuration_spec * config = NULL;
@@
-373,7
+373,7
@@
struct configuration_spec * load_config(void)
/* Never get here - LOG_LEVEL_FATAL causes program exit */
}
/* Never get here - LOG_LEVEL_FATAL causes program exit */
}
- while (read_config_line(
buf, sizeof(buf), configfp, &linenum
) != NULL)
+ while (read_config_line(
configfp, &linenum, &buf
) != NULL)
{
char cmd[BUFFER_SIZE];
char arg[BUFFER_SIZE];
{
char cmd[BUFFER_SIZE];
char arg[BUFFER_SIZE];
@@
-404,11
+404,15
@@
struct configuration_spec * load_config(void)
}
/* Copy the argument into arg */
}
/* Copy the argument into arg */
- strlcpy(arg, p, sizeof(arg));
+ if (strlcpy(arg, p, sizeof(arg)) >= sizeof(arg))
+ {
+ log_error(LOG_LEVEL_FATAL, "Config line too long: %s", buf);
+ }
/* Should never happen, but check this anyway */
if (*cmd == '\0')
{
/* Should never happen, but check this anyway */
if (*cmd == '\0')
{
+ freez(buf);
continue;
}
continue;
}
@@
-1339,7
+1343,7
@@
struct configuration_spec * load_config(void)
/* Save the argument for the show-status page. */
savearg(cmd, arg, config);
/* Save the argument for the show-status page. */
savearg(cmd, arg, config);
-
+ freez(buf);
} /* end while ( read_config_line(...) ) */
fclose(configfp);
} /* end while ( read_config_line(...) ) */
fclose(configfp);