Module Name: src Committed By: christos Date: Tue Apr 1 14:28:17 UTC 2014
Modified Files: src/sys/ufs/ffs: ffs_vfsops.c Log Message: Check for bread errors before we do the size check. Otherwise we de-reference NULL... To generate a diff of this commit: cvs rdiff -u -r1.295 -r1.296 src/sys/ufs/ffs/ffs_vfsops.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_vfsops.c diff -u src/sys/ufs/ffs/ffs_vfsops.c:1.295 src/sys/ufs/ffs/ffs_vfsops.c:1.296 --- src/sys/ufs/ffs/ffs_vfsops.c:1.295 Sun Mar 23 11:21:16 2014 +++ src/sys/ufs/ffs/ffs_vfsops.c Tue Apr 1 10:28:17 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ffs_vfsops.c,v 1.295 2014/03/23 15:21:16 hannken Exp $ */ +/* $NetBSD: ffs_vfsops.c,v 1.296 2014/04/01 14:28:17 christos Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.295 2014/03/23 15:21:16 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.296 2014/04/01 14:28:17 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_ffs.h" @@ -1125,14 +1125,14 @@ ffs_mountfs(struct vnode *devvp, struct */ if (!ronly) { - error = bread(devvp, FFS_FSBTODB(fs, fs->fs_size - 1), fs->fs_fsize, - cred, 0, &bp); - if (bp->b_bcount != fs->fs_fsize) - error = EINVAL; + error = bread(devvp, FFS_FSBTODB(fs, fs->fs_size - 1), + fs->fs_fsize, cred, 0, &bp); if (error) { bset = BC_INVAL; goto out; } + if (bp->b_bcount != fs->fs_fsize) + error = EINVAL; brelse(bp, BC_INVAL); bp = NULL; }