From: Dmitry Eremin Date: Fri, 5 Sep 2014 13:35:55 +0000 (+0400) Subject: LU-5591 lod: fix Null pointer dereference in lod_ah_init() X-Git-Tag: 2.6.90~19 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=38e3958eaad5215968ec4abd2eda7c9dc12d6ba8 LU-5591 lod: fix Null pointer dereference in lod_ah_init() Null pointer may be dereferenced in lod_ah_init() Signed-off-by: Dmitry Eremin Change-Id: I76567d222ac7eb74440c74692aaa79f7078bca61 Reviewed-on: http://review.whamcloud.com/11770 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: John L. Hammond Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- diff --git a/lustre/lod/lod_object.c b/lustre/lod/lod_object.c index 9417ba3..8c2c8d1 100644 --- a/lustre/lod/lod_object.c +++ b/lustre/lod/lod_object.c @@ -3085,9 +3085,12 @@ static void lod_ah_init(const struct lu_env *env, * in case of late striping creation, ->ah_init() * can be called with local object existing */ - if (!dt_object_exists(nextc) || dt_object_remote(nextc)) - nextc->do_ops->do_ah_init(env, ah, dt_object_remote(nextp) ? - NULL : nextp, nextc, child_mode); + if (!dt_object_exists(nextc) || dt_object_remote(nextc)) { + struct dt_object *obj; + + obj = (nextp != NULL && dt_object_remote(nextp)) ? NULL : nextp; + nextc->do_ops->do_ah_init(env, ah, obj, nextc, child_mode); + } if (S_ISDIR(child_mode)) { if (lc->ldo_dir_stripe == NULL) {