Whamcloud - gitweb
LU-7536 mdt: handling NULL dereference in mdt_reconstruct
[fs/lustre-release.git] / lustre / mdt / mdt_recovery.c
index 859c40d..a2bbdc8 100644 (file)
@@ -332,13 +332,18 @@ static mdt_reconstructor reconstructors[REINT_MAX] = {
         [REINT_UNLINK]   = mdt_reconstruct_generic,
         [REINT_RENAME]   = mdt_reconstruct_generic,
         [REINT_OPEN]     = mdt_reconstruct_open,
-        [REINT_SETXATTR] = mdt_reconstruct_generic
+       [REINT_SETXATTR] = mdt_reconstruct_generic,
+       [REINT_RMENTRY]  = mdt_reconstruct_generic,
+       [REINT_MIGRATE] = mdt_reconstruct_generic
 };
 
 void mdt_reconstruct(struct mdt_thread_info *mti,
                      struct mdt_lock_handle *lhc)
 {
+       mdt_reconstructor reconst;
         ENTRY;
-        reconstructors[mti->mti_rr.rr_opcode](mti, lhc);
+       LASSERT(mti->mti_rr.rr_opcode < REINT_MAX &&
+               (reconst = reconstructors[mti->mti_rr.rr_opcode]) != NULL);
+       reconst(mti, lhc);
         EXIT;
 }