В ядре Linux устранена следующая уязвимость: pps: исправить предупреждение в pps_register_cdev, когда устройство регистрации выходит из стр…
В ядре Linux устранена следующая уязвимость: pps: исправить предупреждение в pps_register_cdev, когда устройство регистрации выходит из строя Аналогично предыдущему декларированию 2a934fdb01db («См.: v4l2-dev: исправление ошибки обработка в __video_register_device("), крюк выпуска должен быть установлен перед устройством_register(). В противном случае, когда device_register() ошибка возврата и put_device() попробуйте перезвонить функцию выпуска, предупреждение ниже Может случиться. ------------------------------------------------------------- ВНИМАНИЕ: CPU: 1 PID: 4760 на драйверах/base/core.c:2567 device_release+0x1bd/0x240 драйверы/base/core.c:2567 Модули, связанные с: CPU: 1 UID: 0 PID: 4760 Комплект: syz.4.914 Не испорченный 6.17.0-rc3+ #1 RIP: 0010:device_release+0x1bd/0x240 драйверы/base/core.c:2567 Трейс по вызову: <TASK> kobject_cleanup+0x136/0x410 lib/kobject.c:689 kobject_release lib/kobject.c:720 [inline] kref_put включить/linux/kref.h:65 [inline] kobject_put+0xe9/0x130 lib/kobject.c:737 put_device+0x24/0x30 драйверы/base/core.c:3797 pps_register_cdev+0x2da/0x370 драйверы/pps/pps.c:402 pps_register_source+0x2f6/0x480 драйверы/pps/kapi.c:108 pps_tty_open+0x190/0x310 драйверы/pps/cients/pps-ldisc.c:57 tty_ldisc_open+0xa7/0x120 водителей/tty/tty_ldisc.c:432 tty_set_ldisc+0x333/0x780 водителей/tty/tty_ldisc.c:563 cocsetd драйверы/tty/tty_io.c:2429 [встроение] tty_ioctl+0x5d1/0x1700 драйверы/tty/tty_io.c:2728 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:598 [встроение] __se_sys_ioctl fs/ioctl.c:584 [inline] __x64_sys_ioctl+0x194/0x210 fs/ioctl.c:584 do_syscall_x64 арка/x86/вход/syscall_64.c:63 [inline] do_syscall_64+0x5f/0x2a0 арка/x86/вход/syscall_64.c:94 вход_SYSCALL_64_after_hwframe+0x76/0x7e </ТАШКА> Перед совершением c79a39dc8d06 ("pps: Исправить использование-после-бесплатно"), pps_register_cdev() вызов устройства_create() для создания pps->dev, который будет init dev->выпустить к устройству_create_release(). Теперь комментарий устарел, Просто уберите его. Спасибо за напоминание от Calvin Owens, 'kfree_pps' должен быть удален в pps_register_source(), чтобы избежать двойного свободного в случае неудачи.
| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.15 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается |