]> Dogcows Code - chaz/p5-File-KDBX/blobdiff - lib/File/KDBX/Loader.pm
Be sure to not lose $@ when loading KDBX files
[chaz/p5-File-KDBX] / lib / File / KDBX / Loader.pm
index 844f038098e8426518b1f77f5d2dd42fef4c2164..9f513218949255a234b2438d4c4a6e5276708246 100644 (file)
@@ -303,7 +303,17 @@ sub _read {
 
     my $headers = $self->_read_headers($fh);
 
-    $self->_read_body($fh, $key, "$magic$headers");
+    eval {
+        $self->_read_body($fh, $key, "$magic$headers");
+    };
+    if (my $err = $@) {
+        throw "Failed to load KDBX file: $err",
+            error               => $err,
+            compression_error   => $IO::Uncompress::Gunzip::GunzipError,
+            crypt_error         => $File::KDBX::IO::Crypt::ERROR,
+            hash_error          => $File::KDBX::IO::HashBLock::ERROR,
+            hmac_error          => $File::KDBX::IO::HmacBLock::ERROR;
+    }
 }
 
 sub _read_headers {
This page took 0.025619 seconds and 4 git commands to generate.