mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 14:40:12 -04:00
staging/lustre/ptlrpc: Fix potential NULL pointer dereference
In lov_unpackmd() there's this strange bit of code where we first try to look inside of lmm striping pattern for it's type, and then we check if the pattern is NULL which cannot be right. Move the check under if (lmm) branch so that it's safe. Found by Coverity version 6.6.1 Signed-off-by: Sebastien Buisson <sebastien.buisson@bull.net> Reviewed-on: http://review.whamcloud.com/7827 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4049 Reviewed-by: John L. Hammond <john.hammond@intel.com> Reviewed-by: jacques-Charles Lafoucriere <jacques-charles.lafoucriere@cea.fr> Signed-off: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
38bbb63d94
commit
3959d0cb7e
@@ -367,9 +367,11 @@ int lov_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsmp,
|
||||
if (rc)
|
||||
return rc;
|
||||
magic = le32_to_cpu(lmm->lmm_magic);
|
||||
pattern = le32_to_cpu(lmm->lmm_pattern);
|
||||
} else {
|
||||
magic = LOV_MAGIC;
|
||||
stripe_count = lov_get_stripecnt(lov, magic, 0);
|
||||
pattern = LOV_PATTERN_RAID0;
|
||||
}
|
||||
|
||||
/* If we aren't passed an lsmp struct, we just want the size */
|
||||
@@ -384,7 +386,6 @@ int lov_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsmp,
|
||||
return 0;
|
||||
}
|
||||
|
||||
pattern = le32_to_cpu(lmm->lmm_pattern);
|
||||
lsm_size = lov_alloc_memmd(lsmp, stripe_count, pattern, magic);
|
||||
if (lsm_size < 0)
|
||||
return lsm_size;
|
||||
|
||||
Reference in New Issue
Block a user