On 14 May 2016 at 10:37, Laurent Vivier <laur...@vivier.eu> wrote:
>
>
> Le 13/05/2016 à 18:40, Peter Maydell a écrit :
>> On 30 January 2016 at 22:26, Laurent Vivier <laur...@vivier.eu> wrote:
>>> +    while (len > (int)sizeof(struct nlmsghdr)) {
>>
>> What is this cast to int for ?
>>
>
> I agree it seems useless, I have copied some parts from the kernel :
>
> /usr/include/linux/netlink.h
>
> #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
> ...
>
> so the "(int)" comes from this.

Hmm. It may well be right, but I'd like to understand what
it's doing, really...

>>> +        break;
>>> +    default:
>>
>> Should we log something about an unsupported IFLA type here?
>
> Yes, I use that to debug too. But it is "fprintf()".
> Is "gemu_log()" a good choice?

It seems to be what we use elsewhere for similar logging.

>>> +    while (len >= (int)sizeof(struct rtattr)) {
>>> +        rtattr->rta_len = tswap16(rtattr->rta_len);
>>> +        rtattr->rta_type = tswap16(rtattr->rta_type);
>>> +        if (rtattr->rta_len < sizeof(struct rtattr) ||
>>> +            rtattr->rta_len > len) {
>>> +            break;
>>> +        }
>>
>> Length check after swap of len/type again.
>
> I don't understand: why "again"?

I tend to use "again" to mean "this is a similar kind of
code review comment to an issue I talked about in more
detail when it came up earlier in the patch".

thanks
-- PMM

Reply via email to