Fix possible buffer overrun

This commit is contained in:
Pasi Kallinen
2017-09-19 14:09:01 +03:00
parent 98383f7a46
commit b82b41cb5a
+15 -12
View File
@@ -2735,9 +2735,10 @@ boolean secure;
tmp->fromfile = from_file; tmp->fromfile = from_file;
tmp->secure = secure; tmp->secure = secure;
tmp->origline[0] = '\0'; tmp->origline[0] = '\0';
if (sourcename && sourcename[0]) if (sourcename && sourcename[0]) {
Strcpy(tmp->source, sourcename); (void) strncpy(tmp->source, sourcename, sizeof(tmp->source)-1);
else tmp->source[sizeof(tmp->source)-1] = '\0';
} else
tmp->source[0] = '\0'; tmp->source[0] = '\0';
tmp->next = config_error_data; tmp->next = config_error_data;
@@ -2748,19 +2749,21 @@ STATIC_OVL boolean
config_error_nextline(line) config_error_nextline(line)
const char *line; const char *line;
{ {
if (!config_error_data) struct _config_error_frame *ced = config_error_data;
if (!ced)
return FALSE; return FALSE;
if (config_error_data->num_errors if (ced->num_errors && ced->secure)
&& config_error_data->secure)
return FALSE; return FALSE;
config_error_data->line_num++; ced->line_num++;
config_error_data->origline_shown = FALSE; ced->origline_shown = FALSE;
if (line && line[0]) if (line && line[0]) {
Strcpy(config_error_data->origline, line); strncpy(ced->origline, line, sizeof(ced->origline)-1);
else ced->origline[sizeof(ced->origline)-1] = '\0';
config_error_data->origline[0] = '\0'; } else
ced->origline[0] = '\0';
return TRUE; return TRUE;
} }