Commit 358bd68c authored by Michal Nazarewicz's avatar Michal Nazarewicz Committed by Greg Kroah-Hartman

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: default avatarMichal Nazarewicz <mina86@mina86.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 14f4f4aa
...@@ -1882,8 +1882,11 @@ swabber_dumper_helper(struct req_capsule *pill, ...@@ -1882,8 +1882,11 @@ swabber_dumper_helper(struct req_capsule *pill,
else else
do_swab = 0; do_swab = 0;
if (!field->rmf_dumper)
dump = 0;
if (!(field->rmf_flags & RMF_F_STRUCT_ARRAY)) { if (!(field->rmf_flags & RMF_F_STRUCT_ARRAY)) {
if (dump && field->rmf_dumper) { if (dump) {
CDEBUG(D_RPCTRACE, "Dump of %sfield %s follows\n", CDEBUG(D_RPCTRACE, "Dump of %sfield %s follows\n",
do_swab ? "unswabbed " : "", field->rmf_name); do_swab ? "unswabbed " : "", field->rmf_name);
field->rmf_dumper(value); field->rmf_dumper(value);
...@@ -1909,7 +1912,7 @@ swabber_dumper_helper(struct req_capsule *pill, ...@@ -1909,7 +1912,7 @@ swabber_dumper_helper(struct req_capsule *pill,
for (p = value, i = 0, n = len / field->rmf_size; for (p = value, i = 0, n = len / field->rmf_size;
i < n; i < n;
i++, p += field->rmf_size) { i++, p += field->rmf_size) {
if (dump && field->rmf_dumper) { if (dump) {
CDEBUG(D_RPCTRACE, "Dump of %sarray field %s, " CDEBUG(D_RPCTRACE, "Dump of %sarray field %s, "
"element %d follows\n", "element %d follows\n",
do_swab ? "unswabbed " : "", field->rmf_name, i); do_swab ? "unswabbed " : "", field->rmf_name, i);
...@@ -1918,7 +1921,7 @@ swabber_dumper_helper(struct req_capsule *pill, ...@@ -1918,7 +1921,7 @@ swabber_dumper_helper(struct req_capsule *pill,
if (!do_swab) if (!do_swab)
continue; continue;
swabber(p); swabber(p);
if (dump && field->rmf_dumper) { if (dump) {
CDEBUG(D_RPCTRACE, "Dump of swabbed array field %s, " CDEBUG(D_RPCTRACE, "Dump of swabbed array field %s, "
"element %d follows\n", field->rmf_name, i); "element %d follows\n", field->rmf_name, i);
field->rmf_dumper(value); field->rmf_dumper(value);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment