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

Reply via email to