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);

Reply via email to