Re: A potential race in drivers/staging/speakup/speakup.ko

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



05.09.2016 12:56, Samuel Thibault пишет:
Pavel Andrianov, on Mon 05 Sep 2016 12:54:10 +0300, wrote:
05.09.2016 12:43, Samuel Thibault пишет:
Pavel Andrianov, on Mon 05 Sep 2016 11:51:50 +0300, wrote:
There is a potential race in drivers/staging/speakup/speakup.ko.
All operations with global pointers buff_in and buff_out are performed
without any locks. Thus, a simultaneous write (via synth_buffer_clear or
synth_buffer_add) to the pointers may lead to inconsistent data.

Should a local lock be used here?

AIUI, all callers of these functions have speakup_info.spinlock held.

Regard a call stack

-> synth_direct_store
  -> synth_printf
    -> synth_buffer_add

The functions have not held speakup_info.spinlock.

Apparently there is currently no caller of synth_direct_store and
synth_store. But taking the lock here would be needed indeed.

Samuel


synth_direct_store may be called via device_attributes interface. In which function the lock should be added?

--
Pavel Andrianov
Linux Verification Center, ISPRAS
web: http://linuxtesting.org
e-mail: andrianov@xxxxxxxxx
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux