mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-15 04:37:33 +07:00
irda: Correctly clean up self->ias_obj on irda_bind() failure.
If irda_open_tsap() fails, the irda_bind() code tries to destroy the ->ias_obj object by hand, but does so wrongly. In particular, it fails to a) release the hashbin attached to the object and b) reset the self->ias_obj pointer to NULL. Fix both problems by using irias_delete_object() and explicitly setting self->ias_obj to NULL, just as irda_release() does. Reported-by: Tavis Ormandy <taviso@cmpxchg8b.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7619b1b2e2
commit
628e300ccc
@ -824,8 +824,8 @@ static int irda_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
|
|||||||
|
|
||||||
err = irda_open_tsap(self, addr->sir_lsap_sel, addr->sir_name);
|
err = irda_open_tsap(self, addr->sir_lsap_sel, addr->sir_name);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
kfree(self->ias_obj->name);
|
irias_delete_object(self->ias_obj);
|
||||||
kfree(self->ias_obj);
|
self->ias_obj = NULL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user