MINOR: ssl: crt-list parsing factor
LINESIZE and MAX_LINE_ARGS are too low for parsing crt-list.
diff --git a/include/common/defaults.h b/include/common/defaults.h
index 1c971d9..3e04f02 100644
--- a/include/common/defaults.h
+++ b/include/common/defaults.h
@@ -74,6 +74,9 @@
// max # args on a configuration line
#define MAX_LINE_ARGS 64
+// crt-list parsing factor for LINESIZE and MAX_LINE_ARGS
+#define CRTLIST_FACTOR 32
+
// max # args on a stats socket
// This should cover at least 5 + twice the # of data_types
#define MAX_STATS_ARGS 64
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index 957bc97..e0a1616 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -2446,7 +2446,7 @@
int ssl_sock_load_cert_list_file(char *file, struct bind_conf *bind_conf, struct proxy *curproxy, char **err)
{
- char thisline[LINESIZE];
+ char thisline[LINESIZE*CRTLIST_FACTOR];
FILE *f;
struct stat buf;
int linenum = 0;
@@ -2461,7 +2461,7 @@
int arg;
int newarg;
char *end;
- char *args[MAX_LINE_ARGS + 1];
+ char *args[MAX_LINE_ARGS*CRTLIST_FACTOR + 1];
char *line = thisline;
linenum++;
@@ -2489,7 +2489,7 @@
*line = 0;
}
else if (newarg) {
- if (arg == MAX_LINE_ARGS) {
+ if (arg == MAX_LINE_ARGS*CRTLIST_FACTOR) {
memprintf(err, "too many args on line %d in file '%s'.",
linenum, file);
cfgerr = 1;