From: Rob Browning Date: Sun, 19 Dec 2021 21:11:28 +0000 (-0600) Subject: MetaStoreReader: protect __del__ against init failures X-Git-Url: https://arthur.barton.de/gitweb/?p=bup.git;a=commitdiff_plain;h=9478e2d88634bd22b3d0145b76926d719e457faa;hp=2e6cfa6156f8dd94b76f1496fa0d1e4dde5a12db MetaStoreReader: protect __del__ against init failures The previous code could crash in __del__ if init's open() threw. Thanks to Johannes Berg for reporting the issue. Signed-off-by: Rob Browning Tested-by: Rob Browning --- diff --git a/lib/bup/index.py b/lib/bup/index.py index 3b98892..3941a5c 100644 --- a/lib/bup/index.py +++ b/lib/bup/index.py @@ -50,18 +50,16 @@ class Error(Exception): class MetaStoreReader: def __init__(self, filename): - self._closed = False self._file = None self._file = open(filename, 'rb') def close(self): - self._closed = True - if self._file: - self._file.close() - self._file = None + f, self._file = self._file, None + if f: + f.close() def __del__(self): - assert self._closed + assert not self._file def __enter__(self): return self