В ядре Linux устранена следующая уязвимость: nilfs2: Исправить потенциальный переполнение блока, которое вызывает висение системы Когда пол…
В ядре Linux устранена следующая уязвимость: nilfs2: Исправить потенциальный переполнение блока, которое вызывает висение системы Когда пользователь выполняет команду FITRIM, может возникнуть недопоток, когда вычисление n блоков, если end_block слишком мал. Так как блоки от тип sector_t, который является u64, отрицательное значение nblocks станет очень большое положительное целое. Это в конечном итоге приводит к блок-слою функция __blkdev_issue_discard() занимает слишком много времени обработка биоцепки, и блокировка ns_segctor_sem остается удерживаемой для длительный период. Это мешает другим задачам приобрести ns_segctor_sem замок, в результате чего о зависании сообщается сизнаботом в [1]. Если конечный блок слишком мал, обычно, если он меньше 4KiB диапазон, в зависимости от использования сегмента 0, возможно попробуйте запрос на отказ за пределами размера устройства, вызывающего повешение. Выход успешно и присваивается выброшенный размер (0 в данном случае) в диапазон->лен. Хотя значения запуска и len в диапазоне ввода пользователя слишком малы, Здесь принята консервативная стратегия, чтобы безопасно игнорировать их, что является эквивалентно no-op; он не будет выполнять никакой обрезки и не будет Бросьте ошибку. [1] задача:состояние сегмента: столк:D stack:28968 pid:6093 tgid:6093 ppid:2 task_flags:0x200040 флаги:0x0008000 Трейс по вызову: rwbase_write_lock+0x3dd/0x750 ядро/блокировка/rwbase_rt.c:272 nilfs_transaction_lock+0x253/0x4c0 fs/nilfs2/segment.c:357 nilfs_segctor_thread_construct fs/nilfs2/segment.c:2569 [inline] nilfs_segctor_thread+0x6ec/0xe00 fs/nilfs2/segment.c:2684 [ryusuke: исправлена часть сообщения о последствиях
| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux_kernel | * | Отслеживается |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-std | Отслеживается | |
| kernel-doc-std | Отслеживается | |
| kernel-doc-un | Отслеживается | |
| kernel-doc-un | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается |