mirror of
https://github.com/torvalds/linux
synced 2024-09-30 16:29:47 +00:00
tty: serial: sh-sci: set error code when kasprintf fails
When the call to kasprintf() returns a NULL pointer, function sci_request_irq() frees the preallocated memory and returns 0 is returned. Because 0 means no error, the caller of sci_request_irq() will keep going, and the freed memory may be used or freed again. To avoid the above issue, this patch assigns "-ENOMEM" to the return variable ret. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188691 Signed-off-by: Pan Bian <bianpan2016@163.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a121103c92
commit
623ac1d4a5
|
@ -1743,8 +1743,10 @@ static int sci_request_irq(struct sci_port *port)
|
||||||
desc = sci_irq_desc + i;
|
desc = sci_irq_desc + i;
|
||||||
port->irqstr[j] = kasprintf(GFP_KERNEL, "%s:%s",
|
port->irqstr[j] = kasprintf(GFP_KERNEL, "%s:%s",
|
||||||
dev_name(up->dev), desc->desc);
|
dev_name(up->dev), desc->desc);
|
||||||
if (!port->irqstr[j])
|
if (!port->irqstr[j]) {
|
||||||
|
ret = -ENOMEM;
|
||||||
goto out_nomem;
|
goto out_nomem;
|
||||||
|
}
|
||||||
|
|
||||||
ret = request_irq(irq, desc->handler, up->irqflags,
|
ret = request_irq(irq, desc->handler, up->irqflags,
|
||||||
port->irqstr[j], port);
|
port->irqstr[j], port);
|
||||||
|
|
Loading…
Reference in a new issue