summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorJesper Juhl <jj@chaosbits.net>2012-04-11 22:10:20 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-04-12 14:34:32 -0700
commit474a89885f77953b12bce9f23660c31ef5c2630e (patch)
tree2da1f0498aa3f93ffb91b2a7305169286976f6cd /block
parent17b7e1ba1e2ecc9a09f5e154e555accd2a2eaedf (diff)
staging: android: fix mem leaks in __persistent_ram_init()staging-3.4-rc2
If, in __persistent_ram_init(), the call to persistent_ram_buffer_init() fails or the call to persistent_ram_init_ecc() fails then we fail to free the memory we allocated to 'prz' with kzalloc() - thus leaking it. To prevent the leaks I consolidated all error exits from the function at a 'err:' label at the end and made all error cases jump to that label where we can then make sure we always free 'prz'. This is safe since all the situations where the code bails out happen before 'prz' has been stored anywhere and although we'll do a redundant kfree(NULL) call in the case of kzalloc() itself failing that's OK since kfree() deals gracefully with NULL pointers and I felt it was more important to keep all error exits at a single location than to avoid that one harmless/redundant kfree() on a error path. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Acked-by: Colin Cross <ccross@android.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions