arch/mips/sgi-ip22/ip22-gio.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
Since the memory allocation function kzalloc() may return a NULL pointer,
the use of 'gio_dev' may lead to NULL pointer dereference.
So it is better to check the return value of kzalloc().
Signed-off-by: QintaoShen <unSimple1993@163.com>
---
arch/mips/sgi-ip22/ip22-gio.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/arch/mips/sgi-ip22/ip22-gio.c b/arch/mips/sgi-ip22/ip22-gio.c
index dfc52f6..df7ca21 100644
--- a/arch/mips/sgi-ip22/ip22-gio.c
+++ b/arch/mips/sgi-ip22/ip22-gio.c
@@ -363,7 +363,11 @@ static void ip22_check_gio(int slotno, unsigned long addr, int irq)
printk(KERN_INFO "GIO: slot %d : %s (id %x)\n",
slotno, name, id);
gio_dev = kzalloc(sizeof *gio_dev, GFP_KERNEL);
- gio_dev->name = name;
+
+ if (!gio_dev)
+ return ;
+
+ gio_dev->name = name;
gio_dev->slotno = slotno;
gio_dev->id.id = id;
gio_dev->resource.start = addr;
--
2.7.4
Hello! On 3/28/22 11:04 AM, QintaoShen wrote: > Since the memory allocation function kzalloc() may return a NULL pointer, > the use of 'gio_dev' may lead to NULL pointer dereference. > > So it is better to check the return value of kzalloc(). > > Signed-off-by: QintaoShen <unSimple1993@163.com> > --- > arch/mips/sgi-ip22/ip22-gio.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/arch/mips/sgi-ip22/ip22-gio.c b/arch/mips/sgi-ip22/ip22-gio.c > index dfc52f6..df7ca21 100644 > --- a/arch/mips/sgi-ip22/ip22-gio.c > +++ b/arch/mips/sgi-ip22/ip22-gio.c > @@ -363,7 +363,11 @@ static void ip22_check_gio(int slotno, unsigned long addr, int irq) > printk(KERN_INFO "GIO: slot %d : %s (id %x)\n", > slotno, name, id); > gio_dev = kzalloc(sizeof *gio_dev, GFP_KERNEL); > - gio_dev->name = name; > + > + if (!gio_dev) Indented too little. And indent with tabs please, not spaces. > + return ; No need for space before ';'. [...] MBR, Sergey
© 2016 - 2026 Red Hat, Inc.