Re: [PATCH v7 1/6] media: uvcvideo: Fix underflow addressing on hw timestamp
From: Sergey Senozhatsky
Date: Fri Mar 10 2023 - 07:18:58 EST
On (23/03/10 10:01), Ricardo Ribalda wrote:
> If head is 0, we will be addressing clock->samples[-1], which will
> result in undefined behaviour.
[..]
> first = &clock->samples[clock->head];
> - last = &clock->samples[(clock->head - 1) % clock->size];
> + last = &clock->samples[(clock->head - 1 + clock->size) % clock->size];
Just for visibility:
Per offline discussion with Ricardo, this should not cause a samples[-1]
access, as all arithmetic operations there `unsigned`
75ef: 41 8d 46 ff lea -0x1(%r14),%eax
75f3: 31 d2 xor %edx,%edx
75f5: f7 f1 div %ecx
75f7: 41 89 d5 mov %edx,%r13d
Regardless of that, Ricardo still has a point, there is a bug in the code.