-
Notifications
You must be signed in to change notification settings - Fork 226
Open
Description
Hello,
I have a tarball that I want to read
-> % file backup.tar
backup.tar: POSIX tar archive
But I've got an error
error: "numeric field was not a number: t Regard when getting cksum for a, <=\nm>\n> wrote:\n>\n> Dear \n>\n>\n>\n> Correct. We will have more detai"
It looks like that it starts reading a header from a wrong position.
My code looks like this
use std::fs::File;
use eyre::Result;
use tar::Archive;
fn main() -> Result<()> {
let file: File = File::open(path: "backup.tar")?;
let mut archive: Archive<File> = Archive::new(obj: file);
archive.entries().unwrap().for_each(|x: Result<Entry<File>, Error>| {
let x: Entry<File> = x.unwrap();
println!("{}", x.path().unwrap().display())
});
Ok(())
}
And with a couple of dbg!() I've got this.
[/home/nikola/src/tar-rs/src/archive.rs:268] self.next = 1081462272
[/home/nikola/src/tar-rs/src/archive.rs:271] self.next - self.archive.inner.pos.get() = 7680
[/home/nikola/src/tar-rs/src/archive.rs:294] &header = UstarHeader {
entry_size: 138,
size: 138,
path: "././@LongLink",
link_name: None,
username: Some(
"",
),
groupname: Some(
"",
),
cksum: 2567,
cksum_valid: true,
}
[/home/nikola/src/tar-rs/src/archive.rs:268] self.next = 1081463296
[/home/nikola/src/tar-rs/src/archive.rs:271] self.next - self.archive.inner.pos.get() = 374
[/home/nikola/src/tar-rs/src/archive.rs:294] &header = UstarHeader {
entry_size: 64700,
size: 64700,
path: "backup-3.22.2023_17-45-34_acaegypt/homedir/mail/....t/management/cur/1673424346.M756912P292403.demosthenes.datapack.net,S=64700,W=65570:2,",
link_name: Some(
"backup-3.22.2023_17-45-34_acaegypt/homedir/mail/...t/acc/cur/1673424346.M756912P292403.demos",
),
mode: 0o640,
uid: 1058,
gid: 1061,
mtime: 1673424346,
username: Some(
"user",
),
groupname: Some(
"group",
),
device_major: Some(
9,
),
device_minor: Some(
2,
),
cksum: 24700,
cksum_valid: true,
}
backup-3.22.2023_17-45-34_example/homedir/mail/example.net/management/cur/1673424346.M756912P292403.....net,S=64700,W=65570:2,
[/home/nikola/src/tar-rs/src/archive.rs:268] self.next = 1081528832
[/home/nikola/src/tar-rs/src/archive.rs:271] self.next - self.archive.inner.pos.get() = 65024
[/home/nikola/src/tar-rs/src/archive.rs:294] &header = OldHeader {
path: "a, <=\nm>\n> wrote:\n>\n> Dear Eslam,\n>\n>\n>\n> Correct. We will have more detai",
link_name: Some(
",\n>\n> *\n>\n>\n>\n> Tel: +380 (48) 7 340 34",
),
username: None,
groupname: None,
device_major: None,
device_minor: None,
}
Any ideas what could go wrong?
Metadata
Metadata
Assignees
Labels
No labels