mirror of
https://github.com/thelsing/knx.git
synced 2024-12-18 19:08:18 +01:00
Merge pull request #252 from OpenKNX/fix-buffer-overflow
Fix buffer overflow
This commit is contained in:
commit
aa57fdf482
@ -84,20 +84,17 @@ void ApplicationLayer::dataGroupConfirm(AckType ack, HopCountType hopType, Prior
|
|||||||
case GroupValueRead:
|
case GroupValueRead:
|
||||||
if (_savedAsapReadRequest > 0)
|
if (_savedAsapReadRequest > 0)
|
||||||
_bau.groupValueReadLocalConfirm(ack, _savedAsapReadRequest, priority, hopType, secCtrl, status);
|
_bau.groupValueReadLocalConfirm(ack, _savedAsapReadRequest, priority, hopType, secCtrl, status);
|
||||||
else
|
_savedAsapReadRequest = 0;
|
||||||
println("dataGroupConfirm: APDU-Type GroupValueRead has _savedAsapReadRequest = 0");
|
|
||||||
break;
|
break;
|
||||||
case GroupValueResponse:
|
case GroupValueResponse:
|
||||||
if (_savedAsapResponse > 0)
|
if (_savedAsapResponse > 0)
|
||||||
_bau.groupValueReadResponseConfirm(ack, _savedAsapResponse, priority, hopType, secCtrl, apdu.data(), apdu.length() - 1, status);
|
_bau.groupValueReadResponseConfirm(ack, _savedAsapResponse, priority, hopType, secCtrl, apdu.data(), apdu.length() - 1, status);
|
||||||
else
|
_savedAsapResponse = 0;
|
||||||
println("dataGroupConfirm: APDU-Type GroupValueResponse has _savedAsapResponse = 0");
|
|
||||||
break;
|
break;
|
||||||
case GroupValueWrite:
|
case GroupValueWrite:
|
||||||
if (_savedAsapWriteRequest > 0)
|
if (_savedAsapWriteRequest > 0)
|
||||||
_bau.groupValueWriteLocalConfirm(ack, _savedAsapWriteRequest, priority, hopType, secCtrl, apdu.data(), apdu.length() - 1, status);
|
_bau.groupValueWriteLocalConfirm(ack, _savedAsapWriteRequest, priority, hopType, secCtrl, apdu.data(), apdu.length() - 1, status);
|
||||||
else
|
_savedAsapWriteRequest = 0;
|
||||||
println("dataGroupConfirm: APDU-Type GroupValueWrite has _savedAsapWriteRequest = 0");
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
print("datagroup-confirm: unhandled APDU-Type: ");
|
print("datagroup-confirm: unhandled APDU-Type: ");
|
||||||
|
@ -97,12 +97,16 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define EOP_TIMEOUT 2 //milli seconds; end of layer-2 packet gap
|
#define EOP_TIMEOUT 2 //milli seconds; end of layer-2 packet gap
|
||||||
|
#ifndef EOPR_TIMEOUT // allow to set EOPR_TIMEOUT externally
|
||||||
#define EOPR_TIMEOUT 8 //ms; relaxed EOP timeout; usally to trigger after NAK
|
#define EOPR_TIMEOUT 8 //ms; relaxed EOP timeout; usally to trigger after NAK
|
||||||
|
#endif
|
||||||
#define CONFIRM_TIMEOUT 500 //milli seconds
|
#define CONFIRM_TIMEOUT 500 //milli seconds
|
||||||
#define RESET_TIMEOUT 100 //milli seconds
|
#define RESET_TIMEOUT 100 //milli seconds
|
||||||
#define TX_TIMEPAUSE 0 // 0 means 1 milli seconds
|
#define TX_TIMEPAUSE 0 // 0 means 1 milli seconds
|
||||||
|
|
||||||
#define OVERRUN_COUNT 7 //bytes; max. allowed bytes in receive buffer (on start) to see it as overrun
|
#ifndef OVERRUN_COUNT
|
||||||
|
#define OVERRUN_COUNT 7 //bytes; max. allowed bytes in receive buffer (on start) to see it as overrun
|
||||||
|
#endif
|
||||||
|
|
||||||
// If this threshold is reached loop() goes into
|
// If this threshold is reached loop() goes into
|
||||||
// "hog mode" where it stays in loop() while L2 address reception
|
// "hog mode" where it stays in loop() while L2 address reception
|
||||||
|
Loading…
Reference in New Issue
Block a user