# HG changeset patch # User Mongo # Date 1315817522 -7200 # Node ID ba53613e94e4aa77b2c048bb6bc4e904bbe7059c # Parent f48424ce2a5edec83663ed6a2856450e111c2871 Added some fixes from Jaroslav Fojtik submitted on sourceforge bug tracker: 3096348 Missing "break" in states.c/canDispatch() 3096359 Crash inside dcf.c/send_consise_dcf() 3101891 Potencial overflow inside getNodeState() diff -r f48424ce2a5e -r ba53613e94e4 src/dcf.c --- a/src/dcf.c Tue Aug 30 12:14:34 2011 +0200 +++ b/src/dcf.c Mon Sep 12 10:52:02 2011 +0200 @@ -97,7 +97,7 @@ /* If DCF entry do not exist... Nothing to do.*/ if (errorCode != OD_SUCCESSFUL) goto DCF_finish; } - + if(d->dcf_odentry->bSubCount<=nodeId) goto DCF_finish; /* Fix DCF table overflow */ szData = d->dcf_odentry->pSubindex[nodeId].size; /* if the entry for the nodeId is not empty. */ diff -r f48424ce2a5e -r ba53613e94e4 src/lifegrd.c --- a/src/lifegrd.c Tue Aug 30 12:14:34 2011 +0200 +++ b/src/lifegrd.c Mon Sep 12 10:52:02 2011 +0200 @@ -56,7 +56,11 @@ **/ e_nodeState getNodeState (CO_Data* d, UNS8 nodeId) { - e_nodeState networkNodeState = d->NMTable[nodeId]; + e_nodeState networkNodeState = Unknown_state; + #if NMT_MAX_NODE_ID>0 + if(nodeId < NMT_MAX_NODE_ID) + networkNodeState = d->NMTable[nodeId]; + #endif return networkNodeState; } diff -r f48424ce2a5e -r ba53613e94e4 src/states.c --- a/src/states.c Tue Aug 30 12:14:34 2011 +0200 +++ b/src/states.c Mon Sep 12 10:52:02 2011 +0200 @@ -100,6 +100,7 @@ { proceedNMTstateChange(d,m); } + break; #ifdef CO_ENABLE_LSS case LSS: if (!d->CurrentCommunicationState.csLSS)break;