mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-03 13:01:14 +00:00
Correctly detect truncated input in header parsing
If the section header is the last line in the file, parse_section_header would incorrectly decide that the input had been truncated. Fix this by checking whether the actual input line is correctly formatted. Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
This commit is contained in:
parent
86b5ab162c
commit
f58c53ce66
@ -721,11 +721,6 @@ static int parse_section_header(diskfile_backend *cfg, char **section_out)
|
||||
c = line[pos++];
|
||||
|
||||
do {
|
||||
if (cfg->reader.eof){
|
||||
error = git__throw(GIT_EOBJCORRUPTED, "Failed to parse header. Config file ended unexpectedly");
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (isspace(c)){
|
||||
name[name_length] = '\0';
|
||||
error = parse_section_header_ext(line, name, section_out);
|
||||
@ -743,6 +738,9 @@ static int parse_section_header(diskfile_backend *cfg, char **section_out)
|
||||
|
||||
} while ((c = line[pos++]) != ']');
|
||||
|
||||
if (line[pos - 1] != ']')
|
||||
return git__throw(GIT_EOBJCORRUPTED, "Failed to parse header. Config file ended unexpectedly");
|
||||
|
||||
name[name_length] = 0;
|
||||
free(line);
|
||||
git__strtolower(name);
|
||||
|
Loading…
Reference in New Issue
Block a user