path: root/fs
diff options
authorLiu ShuoX <shuox.liu@intel.com>2014-03-17 13:57:49 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-02-05 22:35:40 -0800
commit979d65e705225f8780c09ceb9b4cbc2cbdc36c6e (patch)
tree30618ad8cfe5947b88dac5a3c3e28981f00d2ac3 /fs
parentca889efda7bb061eb29716ba34a3271c298eb948 (diff)
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs')
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index e0e42b5a691c..d3d37142bd93 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)