Skip to content

Commit e78b1aa

Browse files
author
Jussi Kukkonen
authored
Merge pull request #2003 from dhavalgshah/kceu22_bugbash/issue1999
fix: ngclient: temp_file could be undefined #1999
2 parents 12833b0 + ac7ecfb commit e78b1aa

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

tuf/ngclient/updater.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,21 +275,23 @@ def _load_local_metadata(self, rolename: str) -> bytes:
275275

276276
def _persist_metadata(self, rolename: str, data: bytes) -> None:
277277
"""Write metadata to disk atomically to avoid data loss."""
278+
temp_file_name: Optional[str] = None
278279
try:
279280
# encode the rolename to avoid issues with e.g. path separators
280281
encoded_name = parse.quote(rolename, "")
281282
filename = os.path.join(self._dir, f"{encoded_name}.json")
282283
with tempfile.NamedTemporaryFile(
283284
dir=self._dir, delete=False
284285
) as temp_file:
286+
temp_file_name = temp_file.name
285287
temp_file.write(data)
286288
os.replace(temp_file.name, filename)
287289
except OSError as e:
288290
# remove tempfile if we managed to create one,
289291
# then let the exception happen
290-
if temp_file:
292+
if temp_file_name is not None:
291293
try:
292-
os.remove(temp_file.name)
294+
os.remove(temp_file_name)
293295
except FileNotFoundError:
294296
pass
295297
raise e

0 commit comments

Comments
 (0)