Skip to content

Commit

Permalink
net: ipv4: Fix truncated timestamp returned by inet_current_timestamp()
Browse files Browse the repository at this point in the history
The millisecond timestamps returned by the function is
converted to network byte order by making a call to htons().
htons() only returns __be16 while __be32 is required here.

This was identified by the sparse warning from the buildbot:
net/ipv4/af_inet.c:1405:16: sparse: incorrect type in return
			    expression (different base types)
net/ipv4/af_inet.c:1405:16: expected restricted __be32
net/ipv4/af_inet.c:1405:16: got restricted __be16 [usertype] <noident>

Change the function to use htonl() to return the correct __be32 type
instead so that the millisecond value doesn't get truncated.

Signed-off-by: Deepa Dinamani <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Alexey Kuznetsov <[email protected]>
Cc: Hideaki YOSHIFUJI <[email protected]>
Cc: James Morris <[email protected]>
Cc: Patrick McHardy <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Fixes: 822c868 ("net: ipv4: Convert IP network timestamps to be y2038 safe")
Reported-by: Fengguang Wu <[email protected]> [0-day test robot]
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
deepa-hub authored and davem330 committed Mar 22, 2016
1 parent 9b24684 commit 3ba9d30
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion net/ipv4/af_inet.c
Original file line number Diff line number Diff line change
Expand Up @@ -1415,7 +1415,7 @@ __be32 inet_current_timestamp(void)
msecs += (u32)ts.tv_nsec / NSEC_PER_MSEC;

/* Convert to network byte order. */
return htons(msecs);
return htonl(msecs);
}
EXPORT_SYMBOL(inet_current_timestamp);

Expand Down

0 comments on commit 3ba9d30

Please sign in to comment.