summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2013-07-12 18:52:33 +0000
committerkib <kib@FreeBSD.org>2013-07-12 18:52:33 +0000
commitd323dc8e3aaeeb4826e855b8ab52985bc8ffa0bf (patch)
treeba8b1629db12fc74eab665c00276f87a49b252a1 /sys/ufs
parent9b5eb8f860e576727754c92deb610ae7ef286651 (diff)
downloadFreeBSD-src-d323dc8e3aaeeb4826e855b8ab52985bc8ffa0bf.zip
FreeBSD-src-d323dc8e3aaeeb4826e855b8ab52985bc8ffa0bf.tar.gz
Only copy as much bytes as there in superblock, instead of the full
block copy, when copying the superblock into the snapshot. UFS1 does not align superblock on the block boundary, and bcopy runs off the end of the buffer. Reported by: Andre Albsmeier <Andre.Albsmeier@siemens.com> Reviewed by: mckusick Sponsored by: The FreeBSD Foundation MFC after: 1 week
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_snapshot.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c
index ad157aa..c37706b 100644
--- a/sys/ufs/ffs/ffs_snapshot.c
+++ b/sys/ufs/ffs/ffs_snapshot.c
@@ -792,7 +792,7 @@ out1:
brelse(nbp);
} else {
loc = blkoff(fs, fs->fs_sblockloc);
- bcopy((char *)copy_fs, &nbp->b_data[loc], fs->fs_bsize);
+ bcopy((char *)copy_fs, &nbp->b_data[loc], (u_int)fs->fs_sbsize);
bawrite(nbp);
}
/*
OpenPOWER on IntegriCloud