Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb6980a0

Browse files
committed
Fix IndexError in GitConfigParser when config value ends in new line
Improve the guarding `if` check in `GitConfigParser`'s `string_decode`function to safely handle empty strings and prevent `IndexError`s whenaccessing string elements.This resolves an IndexError in the `GitConfigParser`'s `.read()`method when the config file contains a quoted value ending witha new line.Fixes:#1887
1 parentbc7bd22 commitb6980a0

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

‎git/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ def _read(self, fp: Union[BufferedReader, IO[bytes]], fpname: str) -> None:
452452
e=None# None, or an exception.
453453

454454
defstring_decode(v:str)->str:
455-
ifv[-1]=="\\":
455+
ifvandv[-1]=="\\":
456456
v=v[:-1]
457457
# END cut trailing escapes to prevent decode error
458458

‎test/test_config.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,14 @@ def test_multi_line_config(self):
142142
)
143143
self.assertEqual(len(config.sections()),23)
144144

145+
deftest_config_value_with_trailing_new_line(self):
146+
config_content=b'[section-header]\nkey:"value\n"'
147+
config_file=io.BytesIO(config_content)
148+
config_file.name="multiline_value.config"
149+
150+
git_config=GitConfigParser(config_file)
151+
git_config.read()# This should not throw an exception
152+
145153
deftest_base(self):
146154
path_repo=fixture_path("git_config")
147155
path_global=fixture_path("git_config_global")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp