From bb7a9e6c20b6cceea7802a3cf95eac7fc168c36f Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Mon, 29 Jul 2019 14:54:20 +0200 Subject: [PATCH] Repository.open: use stat() to check for repo dir, fixes #4695 (cherry picked from commit ec3fad0f858aeac5c8d160799cfc16af034f24c5) --- src/borg/repository.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/borg/repository.py b/src/borg/repository.py index e53cec6d0..f2cbdb116 100644 --- a/src/borg/repository.py +++ b/src/borg/repository.py @@ -2,6 +2,7 @@ import errno import mmap import os import shutil +import stat import struct import time from binascii import hexlify, unhexlify @@ -386,8 +387,12 @@ class Repository: def open(self, path, exclusive, lock_wait=None, lock=True): self.path = path - if not os.path.isdir(path): + try: + st = os.stat(path) + except FileNotFoundError: raise self.DoesNotExist(path) + if not stat.S_ISDIR(st.st_mode): + raise self.InvalidRepository(path) if lock: self.lock = Lock(os.path.join(path, 'lock'), exclusive, timeout=lock_wait).acquire() else: