From: <hag...@us...> - 2008-02-21 07:35:04
|
Revision: 3811 http://jnode.svn.sourceforge.net/jnode/?rev=3811&view=rev Author: hagar-wize Date: 2008-02-20 23:34:57 -0800 (Wed, 20 Feb 2008) Log Message: ----------- avoiding array out of bound exception Modified Paths: -------------- trunk/net/src/driver/org/jnode/driver/net/lance/RxDescriptorRing.java Modified: trunk/net/src/driver/org/jnode/driver/net/lance/RxDescriptorRing.java =================================================================== --- trunk/net/src/driver/org/jnode/driver/net/lance/RxDescriptorRing.java 2008-02-20 21:02:48 UTC (rev 3810) +++ trunk/net/src/driver/org/jnode/driver/net/lance/RxDescriptorRing.java 2008-02-21 07:34:57 UTC (rev 3811) @@ -56,6 +56,9 @@ } public SocketBuffer getPacket() { + if (currentDescriptor > rxDescriptors.length) + return null; + RxDescriptor des = rxDescriptors[currentDescriptor]; short status = des.getStatus(); @@ -100,8 +103,12 @@ currentDescriptor = 0; return skbuf; } else { - log.error("Didn't find valid status"); + log.error("Didn't find valid status "+status); currentDescriptor = currentDescriptor + 1; + + if (currentDescriptor == length) + currentDescriptor = 0; + return null; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |