Module Name: src
Committed By: riastradh
Date: Wed May 20 18:19:09 UTC 2015
Modified Files:
src/sys/ufs/ffs: ffs_bswap.c
Log Message:
Don't (harmlessly) overrun di_db array; copy di_ib separately.
Noted by Coverity, CID 974635.
While here, simplify size calculation for memcpy.
To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 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.38
--- src/sys/ufs/ffs/ffs_bswap.c:1.37 Sun Jun 9 17:55:46 2013
+++ src/sys/ufs/ffs/ffs_bswap.c Wed May 20 18:19:09 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.38 2015/05/20 18:19:09 riastradh 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.38 2015/05/20 18:19:09 riastradh 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);