On 2 Nov 2013, at 05:53, Adrian Chadd <adr...@freebsd.org> wrote:

> Hm! A good question!
> 
> On 1 November 2013 22:22, Bruce Evans <b...@optusnet.com.au> wrote:
> 
>>>        if (harvest.point_to_point)
>>> -               random_harvest(&(m->m_data), 12, 2, RANDOM_NET_NG);
>> 
>> 
>> '&(m->m_data)' is not just a pair of style bugs.  It gives address of
>> the pointer (somewhere in the mbuf header), not the address of pointed-
>> to data, so the randomness was almost null.  The style bugs are
>> excessive parentheses and chumminess with the implementation (non-use
>> of the accessor function mtod()).
>> 
>> 
>>> +               random_harvest(mtod(m, const void *), 12, 2,
>>> RANDOM_NET_NG);
>> 
>> 
>> Presumably you really do want to harvest the pointed-to data and there
>> are at least 12 bytes of it, so the semantic fix isn't backwards or a
>> buffer overrun.
>> 
> 
> 
> Mark - did you initially mean the address of the mbuf m_data pointer,
> or the data payload itself?

As Bruce says - the address of payload data itself. We don’t have 12-byte 
pointers in FreeBSD. :-)

M
-- 
Mark R V Murray

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to