On Fri, Jul 28, 2017 at 2:52 PM, Deepa Dinamani deepa.kernel@gmail.com wrote:
struct timespec is not y2038 safe. Replace all uses of timespec by y2038 safe struct timespec64.
Even though timespec is used here to represent timeouts, replace these with timespec64 so that it facilitates in verification by creating a y2038 safe kernel image that is free of timespec.
The syscall interfaces themselves are not changed as part of the patch. They will be part of a different series.
Signed-off-by: Deepa Dinamani deepa.kernel@gmail.com Cc: Paul Moore paul@paul-moore.com Cc: Richard Guy Briggs rgb@redhat.com
include/linux/audit.h | 6 +++--- ipc/mqueue.c | 28 ++++++++++++++-------------- kernel/audit.h | 2 +- kernel/auditsc.c | 12 ++++++------ 4 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 3260ba2312a9..d0870f8e3656 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -2083,15 +2083,15 @@ void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
*/ void __audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio,
const struct timespec *abs_timeout)
const struct timespec64 *abs_timeout)
{ struct audit_context *context = current->audit_context;
struct timespec *p = &context->mq_sendrecv.abs_timeout;
struct timespec64 *p = &context->mq_sendrecv.abs_timeout; if (abs_timeout)
memcpy(p, abs_timeout, sizeof(struct timespec));
memcpy(p, abs_timeout, sizeof(struct timespec64));
Since you're changing this line, how about changing it to the following:
memcpy(p, abs_timeout, sizeof(*p));
else
memset(p, 0, sizeof(struct timespec));
memset(p, 0, sizeof(struct timespec64));
Same here.