net: rxrpc: Replace time_t type with time64_t type
Since the 'expiry' variable of 'struct key_preparsed_payload' has been changed to 'time64_t' type, which is year 2038 safe on 32bits system. In net/rxrpc subsystem, we need convert 'u32' type to 'time64_t' type when copying ticket expires time to 'prep->expiry', then this patch introduces two helper functions to help convert 'u32' to 'time64_t' type. This patch also uses ktime_get_real_seconds() to get current time instead of get_seconds() which is not year 2038 safe on 32bits system. Signed-off-by: Baolin Wang <baolin.wang@linaro.org> Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:

committed by
David Howells

parent
c8488a8ad7
commit
10674a03c6
@@ -854,7 +854,7 @@ static int rxkad_decrypt_ticket(struct rxrpc_connection *conn,
|
||||
struct sk_buff *skb,
|
||||
void *ticket, size_t ticket_len,
|
||||
struct rxrpc_crypt *_session_key,
|
||||
time_t *_expiry,
|
||||
time64_t *_expiry,
|
||||
u32 *_abort_code)
|
||||
{
|
||||
struct skcipher_request *req;
|
||||
@@ -864,7 +864,7 @@ static int rxkad_decrypt_ticket(struct rxrpc_connection *conn,
|
||||
struct in_addr addr;
|
||||
unsigned int life;
|
||||
const char *eproto;
|
||||
time_t issue, now;
|
||||
time64_t issue, now;
|
||||
bool little_endian;
|
||||
int ret;
|
||||
u32 abort_code;
|
||||
@@ -960,15 +960,15 @@ static int rxkad_decrypt_ticket(struct rxrpc_connection *conn,
|
||||
if (little_endian) {
|
||||
__le32 stamp;
|
||||
memcpy(&stamp, p, 4);
|
||||
issue = le32_to_cpu(stamp);
|
||||
issue = rxrpc_u32_to_time64(le32_to_cpu(stamp));
|
||||
} else {
|
||||
__be32 stamp;
|
||||
memcpy(&stamp, p, 4);
|
||||
issue = be32_to_cpu(stamp);
|
||||
issue = rxrpc_u32_to_time64(be32_to_cpu(stamp));
|
||||
}
|
||||
p += 4;
|
||||
now = get_seconds();
|
||||
_debug("KIV ISSUE: %lx [%lx]", issue, now);
|
||||
now = ktime_get_real_seconds();
|
||||
_debug("KIV ISSUE: %llx [%llx]", issue, now);
|
||||
|
||||
/* check the ticket is in date */
|
||||
if (issue > now) {
|
||||
@@ -1053,7 +1053,7 @@ static int rxkad_verify_response(struct rxrpc_connection *conn,
|
||||
struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
|
||||
struct rxrpc_crypt session_key;
|
||||
const char *eproto;
|
||||
time_t expiry;
|
||||
time64_t expiry;
|
||||
void *ticket;
|
||||
u32 abort_code, version, kvno, ticket_len, level;
|
||||
__be32 csum;
|
||||
|
Reference in New Issue
Block a user