Module Name: src
Committed By: riz
Date: Wed Nov 4 14:56:32 UTC 2015
Modified Files:
src/sys/ufs/ffs [netbsd-7]: ffs_bswap.c
Log Message:
Pull up following revision(s) (requested by riastradh in ticket #896):
sys/ufs/ffs/ffs_bswap.c: revision 1.38
sys/ufs/ffs/ffs_bswap.c: revision 1.39
Don't (harmlessly) overrun di_db array; copy di_ib separately.
Noted by Coverity, CID 974635.
While here, simplify size calculation for memcpy.
memcpy di_extb/db/ib separately. Noted by Coverity, CID 974636.
To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.37.8.1 src/sys/ufs/ffs/ffs_bswap.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/ufs/ffs/ffs_bswap.c
diff -u src/sys/ufs/ffs/ffs_bswap.c:1.37 src/sys/ufs/ffs/ffs_bswap.c:1.37.8.1
--- src/sys/ufs/ffs/ffs_bswap.c:1.37 Sun Jun 9 17:55:46 2013
+++ src/sys/ufs/ffs/ffs_bswap.c Wed Nov 4 14:56:32 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_bswap.c,v 1.37 2013/06/09 17:55:46 dholland Exp $ */
+/* $NetBSD: ffs_bswap.c,v 1.37.8.1 2015/11/04 14:56:32 riz Exp $ */
/*
* Copyright (c) 1998 Manuel Bouyer.
@@ -30,7 +30,7 @@
#endif
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_bswap.c,v 1.37 2013/06/09 17:55:46 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_bswap.c,v 1.37.8.1 2015/11/04 14:56:32 riz Exp $");
#include <sys/param.h>
#if defined(_KERNEL)
@@ -128,7 +128,8 @@ ffs_dinode1_swap(struct ufs1_dinode *o,
n->di_mtimensec = bswap32(o->di_mtimensec);
n->di_ctime = bswap32(o->di_ctime);
n->di_ctimensec = bswap32(o->di_ctimensec);
- memcpy(n->di_db, o->di_db, (UFS_NDADDR + UFS_NIADDR) * sizeof(u_int32_t));
+ memcpy(n->di_db, o->di_db, sizeof(n->di_db));
+ memcpy(n->di_ib, o->di_ib, sizeof(n->di_ib));
n->di_flags = bswap32(o->di_flags);
n->di_blocks = bswap32(o->di_blocks);
n->di_gen = bswap32(o->di_gen);
@@ -158,7 +159,9 @@ ffs_dinode2_swap(struct ufs2_dinode *o,
n->di_kernflags = bswap32(o->di_kernflags);
n->di_flags = bswap32(o->di_flags);
n->di_extsize = bswap32(o->di_extsize);
- memcpy(n->di_extb, o->di_extb, (UFS_NXADDR + UFS_NDADDR + UFS_NIADDR) * 8);
+ memcpy(n->di_extb, o->di_extb, sizeof(n->di_extb));
+ memcpy(n->di_db, o->di_db, sizeof(n->di_db));
+ memcpy(n->di_ib, o->di_ib, sizeof(n->di_ib));
}
void