On Thursday 24 November 2011 07:48:20 Lars-Peter Clausen wrote:
The SigmaDSP firmware loader currently does not perform enough boundary size checks when processing the firmware. As a result it is possible that a malformed firmware can cause an out of bounds memory access.
This patch adds checks which ensure that both the action header and the payload are completely inside the firmware data boundaries before processing them.
in general this looks fine ...
--- a/drivers/firmware/sigma.c +++ b/drivers/firmware/sigma.c
-/* Return: 0==OK, <0==error, =1 ==no more actions */ static int +process_sigma_action(struct i2c_client *client, struct sigma_action *sa)
looks like you're inverting the semantics of this func. i'd add an updated comment above the func to document the new return values.
- /* Reject too small or unreasonable large files. The upper limit is
* chosen a bit arbitrarily but it should be enough for all practical
* purposes and having the limit makes it easier to avoid integer
* overflows later in the loading process. */
multi-line comment style: /* * line one * line two */ -mike