Index: firmware/App/Drivers/Valve2Way.c =================================================================== diff -u -rd9b5f588d81e15ed3849222bed3362e15dbf4b0a -r87d705fcf977af12b7b034735fa5867f2daea2b9 --- firmware/App/Drivers/Valve2Way.c (.../Valve2Way.c) (revision d9b5f588d81e15ed3849222bed3362e15dbf4b0a) +++ firmware/App/Drivers/Valve2Way.c (.../Valve2Way.c) (revision 87d705fcf977af12b7b034735fa5867f2daea2b9) @@ -134,13 +134,17 @@ // Verify tester has logged in with TD if ( TRUE == isTestingActivated() ) { - VALVE_2_WAY_SET_CMD_PAYLOAD_T payload; - - memcpy( &payload, message->payload, sizeof(VALVE_2_WAY_SET_CMD_PAYLOAD_T) ); - if ( ( (VALVE_2_WAY_T)payload.valve < NUM_OF_2_WAY_VALVES ) && ( (OPN_CLS_STATE_T)payload.state < NUM_OF_OPN_CLS_STATES ) ) + // Verify payload length is valid + if ( sizeof( VALVE_2_WAY_SET_CMD_PAYLOAD_T ) == message->hdr.payloadLen ) { - set2WayValveState( (VALVE_2_WAY_T)payload.valve, (OPN_CLS_STATE_T)payload.state ); - result = TRUE; + VALVE_2_WAY_SET_CMD_PAYLOAD_T payload; + + memcpy( &payload, message->payload, sizeof(VALVE_2_WAY_SET_CMD_PAYLOAD_T) ); + if ( ( (VALVE_2_WAY_T)payload.valve < NUM_OF_2_WAY_VALVES ) && ( (OPN_CLS_STATE_T)payload.state < NUM_OF_OPN_CLS_STATES ) ) + { + set2WayValveState( (VALVE_2_WAY_T)payload.valve, (OPN_CLS_STATE_T)payload.state ); + result = TRUE; + } } }