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