Skip to content

Commit 83a66f9

Browse files
fix: use missing_ok=True in extension ZIP cleanup
Replace check-then-act pattern with unlink(missing_ok=True) to eliminate TOCTOU race condition in finally blocks.
1 parent f36634b commit 83a66f9

1 file changed

Lines changed: 2 additions & 4 deletions

File tree

‎src/specify_cli/extensions/_commands.py‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -599,8 +599,7 @@ def extension_add(
599599
raise typer.Exit(1)
600600
finally:
601601
# Clean up downloaded ZIP
602-
if zip_path.exists():
603-
zip_path.unlink()
602+
zip_path.unlink(missing_ok=True)
604603

605604
else:
606605
# Try bundled extensions first (shipped with spec-kit)
@@ -670,8 +669,7 @@ def extension_add(
670669
manifest = manager.install_from_zip(zip_path, speckit_version, priority=priority, force=force)
671670
finally:
672671
# Clean up downloaded ZIP
673-
if zip_path.exists():
674-
zip_path.unlink()
672+
zip_path.unlink(missing_ok=True)
675673

676674
console.print("\n[green]✓[/green] Extension installed successfully!")
677675
console.print(f"\n[bold]{_escape_markup(str(manifest.name))}[/bold] (v{_escape_markup(str(manifest.version))})")

0 commit comments

Comments
 (0)