
On 16-08-2010 18:04, Eric Blake wrote:
So the size of the response datagram isn't sizeof(res) as the check in uml_driver.c expects, but rather sizeof(res.error) + sizeof(res.extra) + sizeof(res.length) + res.length. I agree with this analysis. In other words, the check should be more like this (two conditions - did we get enough bytes to even have a valid res.length, and did we get enough bytes to match with what res.length stated):
if (nbytes < offsetof(struct monitor_request, data) || nbytes < res.length + offsetof(struct monitor_request, data)) incomplete reply
Yup, this looks good.
But before I write such a patch, I'm going to look in more details at your other reply.
Let's just forget all about that one, shall we? Please? :) -- Soren Hansen Ubuntu Developer http://www.ubuntu.com/