An attacker can DOS calldata inSDLPoolSecondary::onTokenTransfer by sending wrong information due to no checks
The function decodes _calldata assuming it contains a uint256 (lockId) and a uint64 (lockingDuration). This is a potential point of failure if _calldata does not conform to this format, which could result in a runtime error.
An attacker could DOS the contract with multiple transactions which could lead to loss of funds or at least the need for recovery actions.
Manual Review
use a try-catch block around the abi.decode operation could allow the contract to handle decoding failures more gracefully, possibly logging an error and continuing or reverting with a clear error message. Additionally, validating the length and format of _calldata before attempting to decode it can prevent some of these issues.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.