Whamcloud - gitweb
LU-5938 mdd: fixed oops when dereferencing structure 19/13619/5
authorFrank Zago <fzago@cray.com>
Tue, 3 Feb 2015 18:37:00 +0000 (12:37 -0600)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 27 Feb 2015 18:53:56 +0000 (18:53 +0000)
In mdd_changelog_ns_store() and mdd_changelog_data_store(),
lu_ucred(env) can be NULL, so do not dereference it.

Signed-off-by: frank zago <fzago@cray.com>
Change-Id: I45d0cbbb171f05ee1d04e628a3b31c256e0d3951
Reviewed-on: http://review.whamcloud.com/13619
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Henri Doreau <henri.doreau@cea.fr>
Reviewed-by: Faccini Bruno <bruno.faccini@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre/mdd/mdd_dir.c
lustre/mdd/mdd_object.c

index be38034..4532bcd 100644 (file)
@@ -813,9 +813,9 @@ int mdd_changelog_ns_store(const struct lu_env *env,
                RETURN(-ENOMEM);
        rec = buf->lb_buf;
 
-       crf = (crf & CLF_FLAGMASK);
+       crf &= CLF_FLAGMASK;
 
-       if (uc->uc_jobid[0] != '\0')
+       if (uc != NULL && uc->uc_jobid[0] != '\0')
                crf |= CLF_JOBID;
 
        if (sname != NULL)
index 2070d29..30b8dd2 100644 (file)
@@ -677,7 +677,7 @@ int mdd_changelog_data_store(const struct lu_env *env, struct mdd_device *mdd,
         }
 
        flags = (flags & CLF_FLAGMASK) | CLF_VERSION;
-       if (uc->uc_jobid[0] != '\0')
+       if (uc != NULL && uc->uc_jobid[0] != '\0')
                flags |= CLF_JOBID;
 
        reclen = llog_data_len(changelog_rec_offset(flags & CLF_SUPPORTED));