pstore: inode: Convert kfree() usage to __free(kfree)
Mostly as an example to myself, replace a simple allocation pattern with the automatic kfree cleanup features now exposed by cleanup.h. Cc: Guilherme G. Piccoli <gpiccoli@igalia.com> Cc: Tony Luck <tony.luck@intel.com> Cc: <linux-hardening@vger.kernel.org> Link: https://lore.kernel.org/r/20231205182622.1329923-1-keescook@chromium.org Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
parent
86222a8fc1
commit
6ba6ee8a59
|
@ -23,6 +23,7 @@
|
|||
#include <linux/pstore.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/cleanup.h>
|
||||
|
||||
#include "internal.h"
|
||||
|
||||
|
@ -64,7 +65,7 @@ static void free_pstore_private(struct pstore_private *private)
|
|||
static void *pstore_ftrace_seq_start(struct seq_file *s, loff_t *pos)
|
||||
{
|
||||
struct pstore_private *ps = s->private;
|
||||
struct pstore_ftrace_seq_data *data;
|
||||
struct pstore_ftrace_seq_data *data __free(kfree) = NULL;
|
||||
|
||||
data = kzalloc(sizeof(*data), GFP_KERNEL);
|
||||
if (!data)
|
||||
|
@ -72,13 +73,10 @@ static void *pstore_ftrace_seq_start(struct seq_file *s, loff_t *pos)
|
|||
|
||||
data->off = ps->total_size % REC_SIZE;
|
||||
data->off += *pos * REC_SIZE;
|
||||
if (data->off + REC_SIZE > ps->total_size) {
|
||||
kfree(data);
|
||||
if (data->off + REC_SIZE > ps->total_size)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return data;
|
||||
|
||||
return_ptr(data);
|
||||
}
|
||||
|
||||
static void pstore_ftrace_seq_stop(struct seq_file *s, void *v)
|
||||
|
|
Loading…
Reference in New Issue