diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-02-04 16:30:48 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-02-04 16:43:40 +0100 |
commit | 89b367941e12b1163afa517eeddca1b5ecd2a054 (patch) | |
tree | 932f6566a0194d0dfe978b378a053e5725ef9ca7 /lib/tar/src/checksum.c | |
parent | 72c8155d9fc0eaeac72c053f46ebb7b231d4596a (diff) |
libtar: some minor cleanups
- Use is_memory_zero from libutil
- Move checksum update function to tar writer code
- Move checksum verify function to tar reader code
- Only export the function to compute the checksum
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/tar/src/checksum.c')
-rw-r--r-- | lib/tar/src/checksum.c | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/lib/tar/src/checksum.c b/lib/tar/src/checksum.c index 6541373..9dc6c0f 100644 --- a/lib/tar/src/checksum.c +++ b/lib/tar/src/checksum.c @@ -4,13 +4,9 @@ * * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at> */ -#include "config.h" - #include "tar/format.h" -#include <stdio.h> - -static unsigned int get_checksum(const tar_header_t *hdr) +unsigned int tar_compute_checksum(const tar_header_t *hdr) { const unsigned char *header_start = (const unsigned char *)hdr; const unsigned char *chksum_start = (const unsigned char *)hdr->chksum; @@ -27,22 +23,3 @@ static unsigned int get_checksum(const tar_header_t *hdr) chksum += *p; return chksum; } - -void update_checksum(tar_header_t *hdr) -{ - unsigned int chksum = get_checksum(hdr); - - sprintf(hdr->chksum, "%06o", chksum); - hdr->chksum[6] = '\0'; - hdr->chksum[7] = ' '; -} - -bool is_checksum_valid(const tar_header_t *hdr) -{ - unsigned int calculated_chksum = get_checksum(hdr); - sqfs_u64 read_chksum; - - if (read_octal(hdr->chksum, sizeof(hdr->chksum), &read_chksum)) - return 0; - return read_chksum == calculated_chksum; -} |