From 30fbd496a1793b4374873144432f9b7a996a689d Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Wed, 24 Jul 2019 12:35:35 +0200 Subject: cleanup: remove atime/ctime processing code This commit removes all the code for parsing and processing atime/ctime and values and related test code. Caring about those is kind of pointless because squashfs can only store mtime in inodes. The only relevant place is when generating a struct stat from a squashfs inode or an fstree node. Signed-off-by: David Oberhollenzer --- lib/fstree/fstree.c | 2 -- lib/fstree/fstree_from_file.c | 2 -- lib/sqfs/deserialize_fstree.c | 2 -- lib/tar/internal.h | 2 -- lib/tar/read_header.c | 62 ------------------------------------------- 5 files changed, 70 deletions(-) (limited to 'lib') diff --git a/lib/fstree/fstree.c b/lib/fstree/fstree.c index 11a1dd1..1bbb678 100644 --- a/lib/fstree/fstree.c +++ b/lib/fstree/fstree.c @@ -69,8 +69,6 @@ static int process_defaults(struct stat *sb, char *subopts) if (lval > 0xFFFFFFFFL) goto fail_ov; sb->st_mtime = lval; - sb->st_atime = lval; - sb->st_ctime = lval; break; default: fprintf(stderr, "Unknown option '%s'\n", value); diff --git a/lib/fstree/fstree_from_file.c b/lib/fstree/fstree_from_file.c index 74d79ae..46926ee 100644 --- a/lib/fstree/fstree_from_file.c +++ b/lib/fstree/fstree_from_file.c @@ -125,8 +125,6 @@ static int handle_line(fstree_t *fs, const char *filename, memset(&sb, 0, sizeof(sb)); sb.st_mtime = fs->defaults.st_mtime; - sb.st_atime = fs->defaults.st_atime; - sb.st_ctime = fs->defaults.st_ctime; /* isolate keyword */ for (i = 0; isalpha(line[i]); ++i) diff --git a/lib/sqfs/deserialize_fstree.c b/lib/sqfs/deserialize_fstree.c index 98444ac..8ed6314 100644 --- a/lib/sqfs/deserialize_fstree.c +++ b/lib/sqfs/deserialize_fstree.c @@ -168,8 +168,6 @@ int deserialize_fstree(fstree_t *out, sqfs_super_t *super, compressor_t *cmp, out->defaults.st_gid = 0; out->defaults.st_mode = 0755; out->defaults.st_mtime = super->modification_time; - out->defaults.st_ctime = super->modification_time; - out->defaults.st_atime = super->modification_time; out->root = tree_node_from_inode(root, &idtbl, "", super->block_size); free(root); diff --git a/lib/tar/internal.h b/lib/tar/internal.h index 8a3a9c5..6ac8d99 100644 --- a/lib/tar/internal.h +++ b/lib/tar/internal.h @@ -21,9 +21,7 @@ enum { PAX_DEV_MIN = 0x010, PAX_NAME = 0x020, PAX_SLINK_TARGET = 0x040, - PAX_ATIME = 0x080, PAX_MTIME = 0x100, - PAX_CTIME = 0x200, PAX_SPARSE_SIZE = 0x400, }; diff --git a/lib/tar/read_header.c b/lib/tar/read_header.c index 4843bb5..043b5ff 100644 --- a/lib/tar/read_header.c +++ b/lib/tar/read_header.c @@ -125,17 +125,6 @@ static int read_pax_header(int fd, uint64_t entsize, unsigned int *set_by_pax, if (out->link_target == NULL) goto fail_errno; *set_by_pax |= PAX_SLINK_TARGET; - } else if (!strncmp(line, "atime=", 6)) { - if (line[6] == '-') { - if (pax_read_decimal(line + 7, &field)) - goto fail; - out->sb.st_atime = -((int64_t)field); - } else { - if (pax_read_decimal(line + 6, &field)) - goto fail; - out->sb.st_atime = field; - } - *set_by_pax |= PAX_ATIME; } else if (!strncmp(line, "mtime=", 6)) { if (line[6] == '-') { if (pax_read_decimal(line + 7, &field)) @@ -147,17 +136,6 @@ static int read_pax_header(int fd, uint64_t entsize, unsigned int *set_by_pax, out->sb.st_mtime = field; } *set_by_pax |= PAX_MTIME; - } else if (!strncmp(line, "ctime=", 6)) { - if (line[6] == '-') { - if (pax_read_decimal(line + 7, &field)) - goto fail; - out->sb.st_ctime = -((int64_t)field); - } else { - if (pax_read_decimal(line + 6, &field)) - goto fail; - out->sb.st_ctime = field; - } - *set_by_pax |= PAX_CTIME; } else if (!strncmp(line, "GNU.sparse.name=", 16)) { free(out->name); out->name = strdup(line + 5); @@ -312,46 +290,6 @@ static int decode_header(const tar_header_t *hdr, unsigned int set_by_pax, } } - if (!(set_by_pax & PAX_ATIME)) { - field = out->sb.st_mtime; - - if (version == ETV_PRE_POSIX && - ((uint8_t)hdr->tail.gnu.atime[0] == 0x80 || - (uint8_t)hdr->tail.gnu.atime[0] == 0xFF || - isdigit(hdr->tail.gnu.atime[0]))) { - if (read_number(hdr->tail.gnu.atime, - sizeof(hdr->tail.gnu.atime), &field)) - return -1; - } - - if (field & 0x8000000000000000UL) { - field = ~field + 1; - out->sb.st_atime = -((int64_t)field); - } else { - out->sb.st_atime = field; - } - } - - if (!(set_by_pax & PAX_CTIME)) { - field = out->sb.st_mtime; - - if (version == ETV_PRE_POSIX && - ((uint8_t)hdr->tail.gnu.ctime[0] == 0x80 || - (uint8_t)hdr->tail.gnu.ctime[0] == 0xFF || - isdigit(hdr->tail.gnu.ctime[0]))) { - if (read_number(hdr->tail.gnu.ctime, - sizeof(hdr->tail.gnu.atime), &field)) - return -1; - } - - if (field & 0x8000000000000000UL) { - field = ~field + 1; - out->sb.st_ctime = -((int64_t)field); - } else { - out->sb.st_ctime = field; - } - } - if (read_octal(hdr->mode, sizeof(hdr->mode), &field)) return -1; -- cgit v1.2.3