diff options
author | Liu ShuoX <shuox.liu@intel.com> | 2014-03-17 13:57:49 -0700 |
---|---|---|
committer | Jiri Slaby <jslaby@suse.cz> | 2015-02-08 20:02:06 +0100 |
commit | ed64a543fa0eb24125468b3c845b7cc05c848b34 (patch) | |
tree | 00d236072f1c5aaa3b040b229173fe2ec6f87dba /fs/pstore | |
parent | 013d52e2500f66563ff14c74f43b68ab16cef9f1 (diff) | |
download | lwn-ed64a543fa0eb24125468b3c845b7cc05c848b34.tar.gz lwn-ed64a543fa0eb24125468b3c845b7cc05c848b34.zip |
pstore: Fix NULL pointer fault if get NULL prz in ramoops_get_next_prz
commit b0aa931fb84431394d995472d0af2a6c2b61064d upstream.
ramoops_get_next_prz get the prz according the paramters. If it get a
uninitialized prz, access its members by following persistent_ram_old_size(prz)
will cause a NULL pointer crash.
Ex: if ftrace_size is 0, fprz will be NULL.
Fix it by return NULL in advance.
Signed-off-by: Liu ShuoX <shuox.liu@intel.com>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Cc: HuKeping <hukeping@huawei.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'fs/pstore')
-rw-r--r-- | fs/pstore/ram.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index 808435a9e2e1..fe68d8ac4d3d 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -125,6 +125,8 @@ ramoops_get_next_prz(struct persistent_ram_zone *przs[], uint *c, uint max, return NULL; prz = przs[i]; + if (!prz) + return NULL; /* Update old/shadowed buffer. */ if (update) |