On 22 August 2014 12:36, Andreas Färber <afaer...@suse.de> wrote: > Am 22.08.2014 13:33, schrieb Peter Maydell: >> On 22 August 2014 12:19, Alexander Graf <ag...@suse.de> wrote: >>> We check whether the passed in counter value is negative on all calls >>> that involve g_posix_timers. However, we AND the value down to 16 bits >>> right before the check, so they can never be negative. >> >> ...but why exactly are we doing that AND with 0xffff ?? It seems >> unlikely that the kernel really allows random garbage in the top >> half of the timer ID arguments, so maybe we should drop the >> mask and keep the <0 bounds checks? > > Or maybe just use a local int16_t variable? I.e., should 0xffff match > the <0 check there or not?
The kernel seems to use 'int' for the timer id type, which suggests that this mask is just wrong. -- PMM