Skip to content

Commit

Permalink
Maintenance: use void return for commSetTimeout functions (#1956)
Browse files Browse the repository at this point in the history
On some systems (e.g. Linux), time_t is a signed 64-bit integer. int may
be a signed 32-bit integer, resulting in possible truncation errors.

Detected by Coverity. CID 1547031: Use of 32-bit time_t (Y2K38_SAFETY).
  • Loading branch information
kinkie authored and squid-anubis committed Dec 2, 2024
1 parent 224061c commit 9685cb7
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 10 deletions.
10 changes: 4 additions & 6 deletions src/comm.cc
Original file line number Diff line number Diff line change
Expand Up @@ -588,7 +588,7 @@ commUnsetFdTimeout(int fd)
F->timeout = 0;
}

int
void
commSetConnTimeout(const Comm::ConnectionPointer &conn, time_t timeout, AsyncCall::Pointer &callback)
{
debugs(5, 3, conn << " timeout " << timeout);
Expand All @@ -608,18 +608,16 @@ commSetConnTimeout(const Comm::ConnectionPointer &conn, time_t timeout, AsyncCal
F->timeoutHandler = callback;
}

F->timeout = squid_curtime + (time_t) timeout;
F->timeout = squid_curtime + timeout;
}

return F->timeout;
}

int
void
commUnsetConnTimeout(const Comm::ConnectionPointer &conn)
{
debugs(5, 3, "Remove timeout for " << conn);
AsyncCall::Pointer nil;
return commSetConnTimeout(conn, -1, nil);
commSetConnTimeout(conn, -1, nil);
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/comm.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ void commUnsetFdTimeout(int fd);
* Set or clear the timeout for some action on an active connection.
* API to replace commSetTimeout() when a Comm::ConnectionPointer is available.
*/
int commSetConnTimeout(const Comm::ConnectionPointer &conn, time_t seconds, AsyncCall::Pointer &callback);
int commUnsetConnTimeout(const Comm::ConnectionPointer &conn);
void commSetConnTimeout(const Comm::ConnectionPointer &, time_t seconds, AsyncCall::Pointer &);
void commUnsetConnTimeout(const Comm::ConnectionPointer &);

int ignoreErrno(int);
void commCloseAllSockets(void);
Expand Down
4 changes: 2 additions & 2 deletions src/tests/stub_comm.cc
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ int comm_udp_sendto(int, const Ip::Address &, const void *, int) STUB_RETVAL(-1)
void commCallCloseHandlers(int) STUB
void commUnsetFdTimeout(int) STUB
// int commSetTimeout(const Comm::ConnectionPointer &, int, AsyncCall::Pointer&) STUB_RETVAL(-1)
int commSetConnTimeout(const Comm::ConnectionPointer &, time_t, AsyncCall::Pointer &) STUB_RETVAL(-1)
int commUnsetConnTimeout(const Comm::ConnectionPointer &) STUB_RETVAL(-1)
void commSetConnTimeout(const Comm::ConnectionPointer &, time_t, AsyncCall::Pointer &) STUB
void commUnsetConnTimeout(const Comm::ConnectionPointer &) STUB
int ignoreErrno(int) STUB_RETVAL(-1)
void commCloseAllSockets(void) STUB
void checkTimeouts(void) STUB
Expand Down

0 comments on commit 9685cb7

Please sign in to comment.