DF-1631 / fix.diff
diff --git a/sys/dev/misc/evdev/cdev.c b/sys/dev/misc/evdev/cdev.c --- a/sys/dev/misc/evdev/cdev.c +++ b/sys/dev/misc/evdev/cdev.c @@ -152,6 +152,9 @@ if (ret != 0) { debugf(client, "cannot register evdev client"); + evdev_dispose_client(evdev, client); + lockuninit(&client->ec_buffer_mtx); + kfree(client, M_EVDEV); } return (ret); |