diff options
author | kib <kib@FreeBSD.org> | 2016-11-29 08:12:18 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2016-11-29 08:12:18 +0000 |
commit | b77adef4ef3ad9fb6790f5c5d39e1a6cc1012822 (patch) | |
tree | c8007502bf4d57ecd4daba9c0e04916ac551f170 /sys/fs/udf/udf_vnops.c | |
parent | c51f6787a647166396feff008bf0bb630bedf8fc (diff) | |
download | FreeBSD-src-b77adef4ef3ad9fb6790f5c5d39e1a6cc1012822.zip FreeBSD-src-b77adef4ef3ad9fb6790f5c5d39e1a6cc1012822.tar.gz |
MFC r308995:
Do not dereference bp after bread(9) on error.
Diffstat (limited to 'sys/fs/udf/udf_vnops.c')
-rw-r--r-- | sys/fs/udf/udf_vnops.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/fs/udf/udf_vnops.c b/sys/fs/udf/udf_vnops.c index 8e0d25e..7432283 100644 --- a/sys/fs/udf/udf_vnops.c +++ b/sys/fs/udf/udf_vnops.c @@ -487,11 +487,11 @@ udf_read(struct vop_read_args *ap) } else { error = bread(vp, lbn, size, NOCRED, &bp); } - n = min(n, size - bp->b_resid); - if (error) { + if (error != 0) { brelse(bp); return (error); } + n = min(n, size - bp->b_resid); error = uiomove(bp->b_data + on, (int)n, uio); brelse(bp); |