Bug 2209

Summary: USB scanner driver broken in 2.4.20-alt1
Product: Sisyphus Reporter: Sergey Vlasov <vsu>
Component: kernel24-upAssignee: Peter 'Nidd' Novodvorsky <nidd>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P5    
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
0002209-linux-2.4.20-alt-usb_scanner_fix.patch none

Description Sergey Vlasov 2003-02-10 15:31:43 MSK
В 2.4.20-alt1 драйвер сканера был заменён на новую версию из 2.4.21-pre - в этой версии есть большая часть багов, исправлявшихся ранее патчем scanner-0.4.7-fix.patch.

1. close_scanner: race при проверке p_scn_table[scn_minor] -  проверка выполнялась без захвата scn_mutex, что могло привести к oops, если указатель в этот момент обнулялся в
disconnect_scanner.

2. probe_scanner: при занятости всех 16 номеров устройств происходило обращение за пределы массива p_scn_table.

3. disconnect_scanner: при уничтожении структуры scn_usb_data не проверялось наличие ссылок на нее в file-&gt;private_data; если после этого программа пыталась выполнить read/write/ioctl, происходило обращение к освобожденной памяти.

Рецепт для Oops: отключить сканер в процессе сканирования. Можно просто несколько раз запустить cat /proc/usb/scanner0 &amp; , после чего отключить сканер.

Обновлённый патч прилагается.
---

---

Comment 1 Anton Farygin 2003-02-10 19:49:39 MSK
fixed (2.4.20-alt3, coming soon)
Comment 2 Anton Farygin 2003-02-10 19:49:39 MSK
fixed (2.4.20-alt3, coming soon)