diff options
author | kib <kib@FreeBSD.org> | 2013-07-12 18:52:33 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2013-07-12 18:52:33 +0000 |
commit | d323dc8e3aaeeb4826e855b8ab52985bc8ffa0bf (patch) | |
tree | ba8b1629db12fc74eab665c00276f87a49b252a1 /sys/ufs | |
parent | 9b5eb8f860e576727754c92deb610ae7ef286651 (diff) | |
download | FreeBSD-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.c | 2 |
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); } /* |