config.c: disallow overly-long lines in copy_or_rename_section_in_file()
As a defense-in-depth measure to guard against any potentially-unknown buffer overflows in `copy_or_rename_section_in_file()`, refuse to work with overly-long lines in a gitconfig. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
This commit is contained in:

committed by
Johannes Schindelin

parent
e91cfe6085
commit
3bb3d6bac5
@ -633,6 +633,16 @@ test_expect_success 'renaming an embedded section with a long line' '
|
||||
test_must_fail git config -f y foo.e
|
||||
'
|
||||
|
||||
test_expect_success 'renaming a section with an overly-long line' '
|
||||
{
|
||||
printf "[b]\\n" &&
|
||||
printf " c = d %525000s e" " " &&
|
||||
printf "[a] g = h\\n"
|
||||
} >y &&
|
||||
test_must_fail git config -f y --rename-section a xyz 2>err &&
|
||||
test_i18ngrep "refusing to work with overly long line in .y. on line 2" err
|
||||
'
|
||||
|
||||
cat >> .git/config << EOF
|
||||
[branch "zwei"] a = 1 [branch "vier"]
|
||||
EOF
|
||||
|
Reference in New Issue
Block a user