lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <ZNVFzhBVT/LyhTuR@vergenet.net> Date: Thu, 10 Aug 2023 22:17:18 +0200 From: Simon Horman <horms@...nel.org> To: Breno Leitao <leitao@...ian.org> Cc: rdunlap@...radead.org, benjamin.poirier@...il.com, davem@...emloft.net, kuba@...nel.org, edumazet@...gle.com, Paolo Abeni <pabeni@...hat.com>, netdev@...r.kernel.org, open list <linux-kernel@...r.kernel.org> Subject: Re: [PATCH net-next v5 1/2] netconsole: Create a allocation helper On Thu, Aug 10, 2023 at 02:54:50AM -0700, Breno Leitao wrote: > De-duplicate the initialization and allocation code for struct > netconsole_target. > > The same allocation and initialization code is duplicated in two > different places in the netconsole subsystem, when the netconsole target > is initialized by command line parameters (alloc_param_target()), and > dynamically by sysfs (make_netconsole_target()). > > Create a helper function, and call it from the two different functions. > > Suggested-by: Eric Dumazet <edumazet@...gle.com> > Signed-off-by: Breno Leitao <leitao@...ian.org> > --- > drivers/net/netconsole.c | 42 +++++++++++++++++++++------------------- > 1 file changed, 22 insertions(+), 20 deletions(-) > > diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c > index 87f18aedd3bd..f93b98d64a3c 100644 > --- a/drivers/net/netconsole.c > +++ b/drivers/net/netconsole.c > @@ -167,19 +167,16 @@ static void netconsole_target_put(struct netconsole_target *nt) > > #endif /* CONFIG_NETCONSOLE_DYNAMIC */ > > -/* Allocate new target (from boot/module param) and setup netpoll for it */ > -static struct netconsole_target *alloc_param_target(char *target_config) > +/* Allocate and initialize with defaults. > + * Note that these targets get their config_item fields zeroed-out. > + */ > +static struct netconsole_target *alloc_and_init(void) > { > - int err = -ENOMEM; > struct netconsole_target *nt; > > - /* > - * Allocate and initialize with defaults. > - * Note that these targets get their config_item fields zeroed-out. > - */ > nt = kzalloc(sizeof(*nt), GFP_KERNEL); > if (!nt) > - goto fail; > + return nt; > > nt->np.name = "netconsole"; > strscpy(nt->np.dev_name, "eth0", IFNAMSIZ); > @@ -187,6 +184,21 @@ static struct netconsole_target *alloc_param_target(char *target_config) > nt->np.remote_port = 6666; > eth_broadcast_addr(nt->np.remote_mac); > > + return nt; > +} > + > +/* Allocate new target (from boot/module param) and setup netpoll for it */ > +static struct netconsole_target *alloc_param_target(char *target_config) > +{ > + struct netconsole_target *nt; > + int err; Hi Breno, This function returns err. However, clang-16 W=1 and Smatch warn that there is a case where this may occur without err having being initialised. > + > + nt = alloc_and_init(); > + if (!nt) { > + err = -ENOMEM; > + goto fail; > + } > + > if (*target_config == '+') { > nt->extended = true; > target_config++; ... -- pw-bot: changes-requested
Powered by blists - more mailing lists