detect overflows when rejectEvents* config params are set very large

This commit is contained in:
Doug Hoyte
2023-07-21 06:33:59 -04:00
parent 6d8aeaa881
commit 5b3190c54a

View File

@ -146,6 +146,10 @@ void verifyEventTimestamp(const NostrIndex::Event *flat) {
uint64_t earliest = now - (flat->expiration() == 1 ? cfg().events__rejectEphemeralEventsOlderThanSeconds : cfg().events__rejectEventsOlderThanSeconds); uint64_t earliest = now - (flat->expiration() == 1 ? cfg().events__rejectEphemeralEventsOlderThanSeconds : cfg().events__rejectEventsOlderThanSeconds);
uint64_t latest = now + cfg().events__rejectEventsNewerThanSeconds; uint64_t latest = now + cfg().events__rejectEventsNewerThanSeconds;
// overflows
if (earliest > now) earliest = 0;
if (latest < now) latest = MAX_U64 - 1;
if (ts < earliest) throw herr("created_at too early"); if (ts < earliest) throw herr("created_at too early");
if (ts > latest) throw herr("created_at too late"); if (ts > latest) throw herr("created_at too late");