summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2013-04-17 03:33:06 +0000
committerderaadt <deraadt@openbsd.org>2013-04-17 03:33:06 +0000
commit3917bbad35fcc1de247c0e2bf09bd6c882a9c867 (patch)
tree110baee09536f6bc61c8d6f4e0ea93271e76928f
parentuse CLOCK_MONOTONIC, and repair future time_t overflow (diff)
downloadwireguard-openbsd-3917bbad35fcc1de247c0e2bf09bd6c882a9c867.tar.xz
wireguard-openbsd-3917bbad35fcc1de247c0e2bf09bd6c882a9c867.zip
ext2fs has a 32-bit time fields. store a u_int32_t of the real time_t --
that should tide us over for a long time. ok guenther
-rw-r--r--sbin/fsck_ext2fs/inode.c6
-rw-r--r--sbin/newfs_ext2fs/mke2fs.c24
2 files changed, 15 insertions, 15 deletions
diff --git a/sbin/fsck_ext2fs/inode.c b/sbin/fsck_ext2fs/inode.c
index 713f0fd7407..e3235b8dbd1 100644
--- a/sbin/fsck_ext2fs/inode.c
+++ b/sbin/fsck_ext2fs/inode.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: inode.c,v 1.17 2011/03/12 17:50:47 deraadt Exp $ */
+/* $OpenBSD: inode.c,v 1.18 2013/04/17 03:33:06 deraadt Exp $ */
/* $NetBSD: inode.c,v 1.8 2000/01/28 16:01:46 bouyer Exp $ */
/*
@@ -573,7 +573,7 @@ pinode(ino_t ino)
if (preen)
printf("%s: ", cdevname());
printf("SIZE=%llu ", (long long)inosize(dp));
- t = fs2h32(dp->e2di_mtime);
+ t = (time_t)fs2h32(dp->e2di_mtime);
p = ctime(&t);
printf("MTIME=%12.12s %4.4s ", &p[4], &p[20]);
}
@@ -645,7 +645,7 @@ allocino(ino_t request, int type)
}
dp->e2di_mode = h2fs16(type);
(void)time(&t);
- dp->e2di_atime = h2fs32(t);
+ dp->e2di_atime = (u_int32_t)h2fs32(t);
dp->e2di_mtime = dp->e2di_ctime = dp->e2di_atime;
dp->e2di_dtime = 0;
inossize(dp, sblock.e2fs_bsize);
diff --git a/sbin/newfs_ext2fs/mke2fs.c b/sbin/newfs_ext2fs/mke2fs.c
index c066e244d7c..c3d8f5a81f3 100644
--- a/sbin/newfs_ext2fs/mke2fs.c
+++ b/sbin/newfs_ext2fs/mke2fs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mke2fs.c,v 1.4 2012/12/04 02:27:00 deraadt Exp $ */
+/* $OpenBSD: mke2fs.c,v 1.5 2013/04/17 03:33:13 deraadt Exp $ */
/* $NetBSD: mke2fs.c,v 1.13 2009/10/19 18:41:08 bouyer Exp $ */
/*-
@@ -347,7 +347,7 @@ mke2fs(const char *fsys, int fi, int fo)
sblock.e2fs.e2fs_ipg = inodes_per_cg;
sblock.e2fs.e2fs_mtime = 0;
- sblock.e2fs.e2fs_wtime = tv.tv_sec;
+ sblock.e2fs.e2fs_wtime = (u_int32_t)tv.tv_sec;
sblock.e2fs.e2fs_mnt_count = 0;
/* XXX: should add some entropy to avoid checking all fs at once? */
sblock.e2fs.e2fs_max_mnt_count = EXT2_DEF_MAX_MNT_COUNT;
@@ -356,7 +356,7 @@ mke2fs(const char *fsys, int fi, int fo)
sblock.e2fs.e2fs_state = E2FS_ISCLEAN;
sblock.e2fs.e2fs_beh = E2FS_BEH_DEFAULT;
sblock.e2fs.e2fs_minrev = 0;
- sblock.e2fs.e2fs_lastfsck = tv.tv_sec;
+ sblock.e2fs.e2fs_lastfsck = (u_int32_t)tv.tv_sec;
sblock.e2fs.e2fs_fsckintv = EXT2_DEF_FSCKINTV;
/*
@@ -925,9 +925,9 @@ fsinit(const struct timeval *tv)
node.e2di_mode = EXT2_IFDIR | EXT2_LOSTFOUNDUMASK;
node.e2di_uid_low = geteuid();
node.e2di_size = sblock.e2fs_bsize * nblks_lostfound;
- node.e2di_atime = tv->tv_sec;
- node.e2di_ctime = tv->tv_sec;
- node.e2di_mtime = tv->tv_sec;
+ node.e2di_atime = (u_int32_t)tv->tv_sec;
+ node.e2di_ctime = (u_int32_t)tv->tv_sec;
+ node.e2di_mtime = (u_int32_t)tv->tv_sec;
node.e2di_gid_low = getegid();
node.e2di_nlink = PREDEFDIR;
/* e2di_nblock is a number of disk blocks, not ext2fs blocks */
@@ -971,9 +971,9 @@ fsinit(const struct timeval *tv)
node.e2di_mode = EXT2_IFDIR | EXT2_UMASK;
node.e2di_uid_low = geteuid();
node.e2di_size = makedir(root_dir, nitems(root_dir));
- node.e2di_atime = tv->tv_sec;
- node.e2di_ctime = tv->tv_sec;
- node.e2di_mtime = tv->tv_sec;
+ node.e2di_atime = (u_int32_t)tv->tv_sec;
+ node.e2di_ctime = (u_int32_t)tv->tv_sec;
+ node.e2di_mtime = (u_int32_t)tv->tv_sec;
node.e2di_gid_low = getegid();
node.e2di_nlink = PREDEFROOTDIR;
/* e2di_nblock is a number of disk block, not ext2fs block */
@@ -1064,9 +1064,9 @@ init_resizeino(const struct timeval *tv)
*/
node.e2di_mode = EXT2_IFREG | EXT2_RESIZEINOUMASK;
node.e2di_uid_low = geteuid();
- node.e2di_atime = tv->tv_sec;
- node.e2di_ctime = tv->tv_sec;
- node.e2di_mtime = tv->tv_sec;
+ node.e2di_atime = (u_int32_t)tv->tv_sec;
+ node.e2di_ctime = (u_int32_t)tv->tv_sec;
+ node.e2di_mtime = (u_int32_t)tv->tv_sec;
node.e2di_gid_low = getegid();
node.e2di_nlink = 1;