From: Miguel A. B. L. <ari...@us...> - 2007-10-24 22:07:38
|
Update of /cvsroot/arianne/marauroa/src/marauroa/common/net In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30741/marauroa/common/net Modified Files: Decoder.java Log Message: fixed [ 1819583 ] Server hangs because NIONetworkServerManager dies fixed [ 1819491 ] Mar: IOException in MsgeFactory.getMessage called f. NIONetw Index: Decoder.java =================================================================== RCS file: /cvsroot/arianne/marauroa/src/marauroa/common/net/Decoder.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Decoder.java 31 May 2007 15:44:36 -0000 1.19 --- Decoder.java 24 Oct 2007 22:07:37 -0000 1.20 *************** *** 109,112 **** --- 109,119 ---- } } + + /* We need to be *sure* that 4 bytes are at least to + * be recieved... + */ + if(data.length<4) { + throw new IOException("Message is too short. Missing mandatory fields."); + } Message msg = msgFactory.getMessage(data, channel, 4); *************** *** 181,187 **** /* First part of the message */ /* ! * NOTE: On real life we can be *sure* that 4 bytes are at least to * be recieved... */ int size = getSizeOfMessage(data); --- 188,198 ---- /* First part of the message */ /* ! * We need to be *sure* that 4 bytes are at least to * be recieved... */ + if(data.length<4) { + throw new IOException("Message is too short. Missing mandatory fields."); + } + int size = getSizeOfMessage(data); |