1
0
mirror of https://github.com/moparisthebest/curl synced 2025-02-28 17:31:46 -05:00

parsecfg: do not continue past a zero termination

When a config file line ends without newline, the parsing function could
continue reading beyond that point in memory.

Reported-by: Hanno Böck
This commit is contained in:
Daniel Stenberg 2015-04-17 00:38:50 +02:00
parent 05e4137d31
commit 691a07dac6

View File

@ -187,6 +187,8 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
param = line; /* parameter starts here */
while(*line && !ISSPACE(*line))
line++;
if(*line) {
*line = '\0'; /* zero terminate */
/* to detect mistakes better, see if there's data following */
@ -202,11 +204,12 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
case '#': /* comment */
break;
default:
warnf(operation->global, "%s:%d: warning: '%s' uses unquoted white "
"space in the line that may cause side-effects!\n",
warnf(operation->global, "%s:%d: warning: '%s' uses unquoted "
"white space in the line that may cause side-effects!\n",
filename, lineno, option);
}
}
}
if(!*param) {
/* do this so getparameter can check for required parameters.