[En-Nut-Discussion] Bug Report

Mike Cornelius mikec at call-direct.com.au
Fri Jan 16 06:55:55 CET 2004


Hi All,
 
I have found a bug in NutNetBufAlloc() netbuf.c
 
In a number of places there are lines like :-
 
if (nb->nb_XX.sz < size)
 
If the condition is true (ie the buffer is too small) the old memory
block is returned to the heap and a new one assigned nb->nb_XX.sz is
updated to reflect the new size and all is OK.
 
However if the new requested size is smaller than the existing size then
nothing happens.
This is a problem because nb->nb_XX.sz does not get updated to reflect
the new smaller size and sometime later on when the network dirver goes
to send this packet it sends too many bytes.
 
I've changed the code to if (nb->nb_XX.sz !< size)...
 
Which works for me but there may be a better way...
 
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
Mike Cornelius                      Internet: mikec at call-direct.com.au
Call Direct Cellular Solutions      Phone:    +61 2 9209-4259
Suite 145                           FAX:      +61 2 9209-4196
National Innovation Centre     URL:      http://www.call-direct.com.au
<http://www.call-direct.com.au/> 
Australian Technology Park
Eveleigh NSW 1430
Australia                  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.egnite.de/pipermail/en-nut-discussion/attachments/20040116/d0e22a6a/attachment.html>


More information about the En-Nut-Discussion mailing list