Christmas Dinner

First Flight #31
Beginner FriendlyFoundrySolidity
100 EXP
View results
Submission Details
Severity: medium
Valid

Missing `deadline` check in `receive` function

Summary:

`ChristmasDinner::receive` function does not checks the deadline for the user who are participating by depositiong ETH.

Impect:

Anyone can participate after deadline.

Proof of concept:

Add this into `ChristmasDinnerTest.t.sol`
Code:
```javascript
function testUserCanDepositeAfterDeadline() public {
vm.deal(user1, 10e18);
vm.warp(1 + 8 days);
vm.startPrank(user1);
(bool ok, ) = address(cd).call{value: 1e18}("");
vm.stopPrank();
assert(ok);
}
```

Recommendations:

The `receive` frunction should be like
```diff
receive() external payable {
+ if(block.timestamp > deadline) {
+ revert BeyondDeadline()
+ }
etherBalance[msg.sender] += msg.value;
emit NewSignup(msg.sender, msg.value, true);
}
```
Updates

Lead Judging Commences

0xtimefliez Lead Judge 11 months ago
Submission Judgement Published
Validated
Assigned finding tags:

receive() function independant from deadline

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.