all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup] file-restore: add context to b64-decode error
@ 2021-04-23 11:00 Fabian Grünbichler
  2021-04-23 11:23 ` [pbs-devel] applied: " Wolfgang Bumiller
  0 siblings, 1 reply; 2+ messages in thread
From: Fabian Grünbichler @ 2021-04-23 11:00 UTC (permalink / raw)
  To: pbs-devel

to make the following cryptic error:

 proxmox-file-restore failed: Error: Invalid byte 46, offset 5.

more understandable:

 proxmox-file-restore failed: Error: Failed base64-decoding path '/root.pxar.didx' - Invalid byte 46, offset 5.

when a user passes in a non-base64 path but sets `--base64`.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---

Notes:
    this can happen via the PVE integration, which always sets the base64 flag
    except for the special value '/'.

 src/bin/proxmox-file-restore.rs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/proxmox-file-restore.rs b/src/bin/proxmox-file-restore.rs
index 3d750152..bb8261bb 100644
--- a/src/bin/proxmox-file-restore.rs
+++ b/src/bin/proxmox-file-restore.rs
@@ -47,7 +47,8 @@ enum ExtractPath {
 
 fn parse_path(path: String, base64: bool) -> Result<ExtractPath, Error> {
     let mut bytes = if base64 {
-        base64::decode(path)?
+        base64::decode(path.clone())
+            .map_err(|err| format_err!("Failed base64-decoding path '{}' - {}", path, err))?
     } else {
         path.into_bytes()
     };
-- 
2.20.1





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup] file-restore: add context to b64-decode error
  2021-04-23 11:00 [pbs-devel] [PATCH proxmox-backup] file-restore: add context to b64-decode error Fabian Grünbichler
@ 2021-04-23 11:23 ` Wolfgang Bumiller
  0 siblings, 0 replies; 2+ messages in thread
From: Wolfgang Bumiller @ 2021-04-23 11:23 UTC (permalink / raw)
  To: Fabian Grünbichler; +Cc: pbs-devel

applied and replaced the .clone() with a reference

On Fri, Apr 23, 2021 at 01:00:47PM +0200, Fabian Grünbichler wrote:
> to make the following cryptic error:
> 
>  proxmox-file-restore failed: Error: Invalid byte 46, offset 5.
> 
> more understandable:
> 
>  proxmox-file-restore failed: Error: Failed base64-decoding path '/root.pxar.didx' - Invalid byte 46, offset 5.
> 
> when a user passes in a non-base64 path but sets `--base64`.
> 
> Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
> ---
> 
> Notes:
>     this can happen via the PVE integration, which always sets the base64 flag
>     except for the special value '/'.
> 
>  src/bin/proxmox-file-restore.rs | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/bin/proxmox-file-restore.rs b/src/bin/proxmox-file-restore.rs
> index 3d750152..bb8261bb 100644
> --- a/src/bin/proxmox-file-restore.rs
> +++ b/src/bin/proxmox-file-restore.rs
> @@ -47,7 +47,8 @@ enum ExtractPath {
>  
>  fn parse_path(path: String, base64: bool) -> Result<ExtractPath, Error> {
>      let mut bytes = if base64 {
> -        base64::decode(path)?
> +        base64::decode(path.clone())

decode takes a `T: AsRef<[u8]>` which works fine for references, so this
can just be

    base64::decode(&path)

> +            .map_err(|err| format_err!("Failed base64-decoding path '{}' - {}", path, err))?
>      } else {
>          path.into_bytes()
>      };
> -- 
> 2.20.1




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-04-23 11:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-23 11:00 [pbs-devel] [PATCH proxmox-backup] file-restore: add context to b64-decode error Fabian Grünbichler
2021-04-23 11:23 ` [pbs-devel] applied: " Wolfgang Bumiller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal