if_ed.c "NIC memory corrupt - invalid packet length" error

Juan Rodriguez juan.fco.rodriguez at gmail.com
Thu Oct 21 16:18:03 PDT 2004


Hello,

I'm getting this error now and then, so I've tried to look at the 
file "if_ed.c" where the message is printed to sort it out... 

I'd be glad if somebody could tell me what's the reason of this line
inside "ed_rint()" function:

         /*
          * because buffers are aligned on 256-byte boundary,
          * the length computed above is off by 256 in almost
          * all cases. Fix it...
          */
          if (len & 0xff)
                 len -= 256 ;

I wonder what can happen here if we've got a length value
that is less than 256. We could end up with a negative value...
could it be this the source that causes the problem ?

PS: I'm kinda newbie so I might be saying stupid things! :)
Thanks


More information about the freebsd-net mailing list