From: Michal Nazarewicz Date: Fri, 29 Nov 2013 17:10:59 +0000 (+0100) Subject: staging: lustre: fix potential NULL pointer dereference X-Git-Tag: upstream/snapshot3+hdmi~3491^2~656 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=358bd68cbdf23797f7360948094b4920caf65877;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git staging: lustre: fix potential NULL pointer dereference The rest of the code seem to imply that rmf_dumper may indeed be NULL. Change the code so that dumping is not even considered if rmf_dumper callback is not set. Signed-off-by: Michal Nazarewicz Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/lustre/lustre/ptlrpc/layout.c b/drivers/staging/lustre/lustre/ptlrpc/layout.c index eee8874..dfcb410 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/layout.c +++ b/drivers/staging/lustre/lustre/ptlrpc/layout.c @@ -1882,8 +1882,11 @@ swabber_dumper_helper(struct req_capsule *pill, else do_swab = 0; + if (!field->rmf_dumper) + dump = 0; + if (!(field->rmf_flags & RMF_F_STRUCT_ARRAY)) { - if (dump && field->rmf_dumper) { + if (dump) { CDEBUG(D_RPCTRACE, "Dump of %sfield %s follows\n", do_swab ? "unswabbed " : "", field->rmf_name); field->rmf_dumper(value); @@ -1909,7 +1912,7 @@ swabber_dumper_helper(struct req_capsule *pill, for (p = value, i = 0, n = len / field->rmf_size; i < n; i++, p += field->rmf_size) { - if (dump && field->rmf_dumper) { + if (dump) { CDEBUG(D_RPCTRACE, "Dump of %sarray field %s, " "element %d follows\n", do_swab ? "unswabbed " : "", field->rmf_name, i); @@ -1918,7 +1921,7 @@ swabber_dumper_helper(struct req_capsule *pill, if (!do_swab) continue; swabber(p); - if (dump && field->rmf_dumper) { + if (dump) { CDEBUG(D_RPCTRACE, "Dump of swabbed array field %s, " "element %d follows\n", field->rmf_name, i); field->rmf_dumper(value);