Re: [PATCH 2/6] Provide __free(argv) for argv_split() users
From: Google
Date: Sun Jan 05 2025 - 04:00:26 EST
On Sat, 4 Jan 2025 12:09:56 +0100
Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> On 01/04, Masami Hiramatsu (Google) wrote:
> >
> > +DEFINE_FREE(argv, char **, argv_free(_T))
>
> This doesn't look right, I think we need
>
> DEFINE_FREE(argv, char **, if (_T) argv_free(_T))
Ah, yes. I misunderstood argv_free() can get NULL.
Thanks!
>
> ?
>
> From the next patch
>
> @@ -73,24 +73,20 @@ int dyn_event_release(const char *raw_command, struct dyn_event_operations *type
> struct dyn_event *pos, *n;
> char *system = NULL, *event, *p;
> int argc, ret = -ENOENT;
> - char **argv;
> + char **argv __free(argv) = NULL;
>
> argv = argv_split(GFP_KERNEL, raw_command, &argc);
> if (!argv)
> return -ENOMEM;
>
> if argv_split() returns NULL, then __free_argv() will call argv_free(NULL) ?
>
> Oleg.
>
>
--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>