mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-01 01:06:59 +00:00
Merge pull request #8102 from ThomasWaldmann/error-msg-bad-nonce-file-master
give clean error msg for invalid nonce file, see #7967
This commit is contained in:
commit
3bfd7652cd
3 changed files with 20 additions and 5 deletions
|
@ -25,7 +25,7 @@
|
||||||
from .fs import HardLinkManager
|
from .fs import HardLinkManager
|
||||||
from .misc import sysinfo, log_multi, consume
|
from .misc import sysinfo, log_multi, consume
|
||||||
from .misc import ChunkIteratorFileWrapper, open_item, chunkit, iter_separated, ErrorIgnoringTextIOWrapper
|
from .misc import ChunkIteratorFileWrapper, open_item, chunkit, iter_separated, ErrorIgnoringTextIOWrapper
|
||||||
from .parseformat import bin_to_hex, safe_encode, safe_decode
|
from .parseformat import bin_to_hex, hex_to_bin, safe_encode, safe_decode
|
||||||
from .parseformat import text_to_json, binary_to_json, remove_surrogates, join_cmd
|
from .parseformat import text_to_json, binary_to_json, remove_surrogates, join_cmd
|
||||||
from .parseformat import eval_escapes, decode_dict, positive_int_validator, interval
|
from .parseformat import eval_escapes, decode_dict, positive_int_validator, interval
|
||||||
from .parseformat import PathSpec, SortBySpec, ChunkerParams, FilesCacheMode, partial_format, DatetimeWrapper
|
from .parseformat import PathSpec, SortBySpec, ChunkerParams, FilesCacheMode, partial_format, DatetimeWrapper
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import abc
|
import abc
|
||||||
import argparse
|
import argparse
|
||||||
import base64
|
import base64
|
||||||
|
import binascii
|
||||||
import hashlib
|
import hashlib
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
@ -10,7 +11,6 @@
|
||||||
import stat
|
import stat
|
||||||
import uuid
|
import uuid
|
||||||
from typing import Dict, Set, Tuple, ClassVar, Any, TYPE_CHECKING, Literal
|
from typing import Dict, Set, Tuple, ClassVar, Any, TYPE_CHECKING, Literal
|
||||||
from binascii import hexlify
|
|
||||||
from collections import Counter, OrderedDict
|
from collections import Counter, OrderedDict
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
@ -33,7 +33,18 @@
|
||||||
|
|
||||||
|
|
||||||
def bin_to_hex(binary):
|
def bin_to_hex(binary):
|
||||||
return hexlify(binary).decode("ascii")
|
return binascii.hexlify(binary).decode("ascii")
|
||||||
|
|
||||||
|
|
||||||
|
def hex_to_bin(hex, length=None):
|
||||||
|
try:
|
||||||
|
binary = binascii.unhexlify(hex)
|
||||||
|
binary_len = len(binary)
|
||||||
|
if length is not None and binary_len != length:
|
||||||
|
raise ValueError(f"Expected {length} bytes ({2 * length} hex digits), got {binary_len} bytes.")
|
||||||
|
except binascii.Error as e:
|
||||||
|
raise ValueError(str(e)) from None
|
||||||
|
return binary
|
||||||
|
|
||||||
|
|
||||||
def safe_decode(s, coding="utf-8", errors="surrogateescape"):
|
def safe_decode(s, coding="utf-8", errors="surrogateescape"):
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
from . import __version__
|
from . import __version__
|
||||||
from .compress import Compressor
|
from .compress import Compressor
|
||||||
from .constants import * # NOQA
|
from .constants import * # NOQA
|
||||||
from .helpers import Error, IntegrityError
|
from .helpers import Error, ErrorWithTraceback, IntegrityError
|
||||||
from .helpers import bin_to_hex
|
from .helpers import bin_to_hex
|
||||||
from .helpers import get_limited_unpacker
|
from .helpers import get_limited_unpacker
|
||||||
from .helpers import replace_placeholders
|
from .helpers import replace_placeholders
|
||||||
|
@ -766,7 +766,11 @@ def handle_error(unpacked):
|
||||||
error = unpacked["exception_class"]
|
error = unpacked["exception_class"]
|
||||||
args = unpacked["exception_args"]
|
args = unpacked["exception_args"]
|
||||||
|
|
||||||
if error == "DoesNotExist":
|
if error == "Error":
|
||||||
|
raise Error(args[0])
|
||||||
|
elif error == "ErrorWithTraceback":
|
||||||
|
raise ErrorWithTraceback(args[0])
|
||||||
|
elif error == "DoesNotExist":
|
||||||
raise Repository.DoesNotExist(self.location.processed)
|
raise Repository.DoesNotExist(self.location.processed)
|
||||||
elif error == "AlreadyExists":
|
elif error == "AlreadyExists":
|
||||||
raise Repository.AlreadyExists(self.location.processed)
|
raise Repository.AlreadyExists(self.location.processed)
|
||||||
|
|
Loading…
Reference in a new issue