From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepa Dinamani Subject: [PATCH] audit: Use timespec64 to represent audit timestamps Date: Sat, 1 Oct 2016 16:43:26 -0700 Message-ID: <1475365406-1653-1-git-send-email-deepa.kernel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" To: linux-kernel@vger.kernel.org Cc: Paul Moore , arnd@arndb.de, y2038@lists.linaro.org, Eric Paris , Richard Guy Briggs , linux-audit@redhat.com List-Id: linux-audit@redhat.com c3RydWN0IHRpbWVzcGVjIGlzIG5vdCB5MjAzOCBzYWZlLgpBdWRpdCB0aW1lc3RhbXBzIGFyZSBy ZWNvcmRlZCBpbiBzdHJpbmcgZm9ybWF0IGludG8KYW4gYXVkaXQgYnVmZmVyIGZvciBhIGdpdmVu IGNvbnRleHQuClRoZXNlIG1hcmsgdGhlIGVudHJ5IHRpbWVzdGFtcHMgZm9yIHRoZSBzeXNjYWxs cy4KVXNlIHkyMDM4IHNhZmUgc3RydWN0IHRpbWVzcGVjNjQgdG8gcmVwcmVzZW50IHRoZSB0aW1l cy4KVGhlIGxvZyBzdHJpbmdzIGNhbiBoYW5kbGUgdGhpcyB0cmFuc2l0aW9uIGFzIHN0cmluZ3Mg Y2FuCmhvbGQgdXB0byAxMDI0IGNoYXJhY3RlcnMuCgpTaWduZWQtb2ZmLWJ5OiBEZWVwYSBEaW5h bWFuaSA8ZGVlcGEua2VybmVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFybmQgQmVyZ21hbm4g PGFybmRAYXJuZGIuZGU+CkFja2VkLWJ5OiBQYXVsIE1vb3JlIDxwYXVsQHBhdWwtbW9vcmUuY29t PgpBY2tlZC1ieTogUmljaGFyZCBHdXkgQnJpZ2dzIDxyZ2JAcmVkaGF0LmNvbT4KQ2M6IEVyaWMg UGFyaXMgPGVwYXJpc0ByZWRoYXQuY29tPgpDYzogUGF1bCBNb29yZSA8cGF1bEBwYXVsLW1vb3Jl LmNvbT4KQ2M6IFJpY2hhcmQgR3V5IEJyaWdncyA8cmdiQHJlZGhhdC5jb20+CkNjOiBsaW51eC1h dWRpdEByZWRoYXQuY29tCi0tLQogaW5jbHVkZS9saW51eC9hdWRpdC5oIHwgIDQgKystLQoga2Vy bmVsL2F1ZGl0LmMgICAgICAgIHwgMTAgKysrKystLS0tLQoga2VybmVsL2F1ZGl0LmggICAgICAg IHwgIDIgKy0KIGtlcm5lbC9hdWRpdHNjLmMgICAgICB8ICA2ICsrKy0tLQogNCBmaWxlcyBjaGFu Z2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKaW5kZXggOWQ0NDQzZi4u ZTUxNzgyYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9hdWRpdC5oCisrKyBiL2luY2x1ZGUv bGludXgvYXVkaXQuaApAQCAtMzMyLDcgKzMzMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhdWRp dF9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICp0KQogCQkJCS8qIFByaXZhdGUgQVBJIChmb3Ig YXVkaXQuYyBvbmx5KSAqLwogZXh0ZXJuIHVuc2lnbmVkIGludCBhdWRpdF9zZXJpYWwodm9pZCk7 CiBleHRlcm4gaW50IGF1ZGl0c2NfZ2V0X3N0YW1wKHN0cnVjdCBhdWRpdF9jb250ZXh0ICpjdHgs Ci0JCQkgICAgICBzdHJ1Y3QgdGltZXNwZWMgKnQsIHVuc2lnbmVkIGludCAqc2VyaWFsKTsKKwkJ CSAgICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp0LCB1bnNpZ25lZCBpbnQgKnNlcmlhbCk7CiBleHRl cm4gaW50IGF1ZGl0X3NldF9sb2dpbnVpZChrdWlkX3QgbG9naW51aWQpOwogCiBzdGF0aWMgaW5s aW5lIGt1aWRfdCBhdWRpdF9nZXRfbG9naW51aWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCkBA IC00OTAsNyArNDkwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fYXVkaXRfc2VjY29tcCh1bnNp Z25lZCBsb25nIHN5c2NhbGwsIGxvbmcgc2lnbnIsIGludCBjb2RlKQogc3RhdGljIGlubGluZSB2 b2lkIGF1ZGl0X3NlY2NvbXAodW5zaWduZWQgbG9uZyBzeXNjYWxsLCBsb25nIHNpZ25yLCBpbnQg Y29kZSkKIHsgfQogc3RhdGljIGlubGluZSBpbnQgYXVkaXRzY19nZXRfc3RhbXAoc3RydWN0IGF1 ZGl0X2NvbnRleHQgKmN0eCwKLQkJCSAgICAgIHN0cnVjdCB0aW1lc3BlYyAqdCwgdW5zaWduZWQg aW50ICpzZXJpYWwpCisJCQkgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCAqdCwgdW5zaWduZWQgaW50 ICpzZXJpYWwpCiB7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvYXVkaXQuYyBi L2tlcm5lbC9hdWRpdC5jCmluZGV4IGE4YTkxYmQuLmIwM2I2YzcgMTAwNjQ0Ci0tLSBhL2tlcm5l bC9hdWRpdC5jCisrKyBiL2tlcm5lbC9hdWRpdC5jCkBAIC0xMzI1LDEwICsxMzI1LDEwIEBAIHVu c2lnbmVkIGludCBhdWRpdF9zZXJpYWwodm9pZCkKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGF1 ZGl0X2dldF9zdGFtcChzdHJ1Y3QgYXVkaXRfY29udGV4dCAqY3R4LAotCQkJCSAgIHN0cnVjdCB0 aW1lc3BlYyAqdCwgdW5zaWduZWQgaW50ICpzZXJpYWwpCisJCQkJICAgc3RydWN0IHRpbWVzcGVj NjQgKnQsIHVuc2lnbmVkIGludCAqc2VyaWFsKQogewogCWlmICghY3R4IHx8ICFhdWRpdHNjX2dl dF9zdGFtcChjdHgsIHQsIHNlcmlhbCkpIHsKLQkJKnQgPSBDVVJSRU5UX1RJTUU7CisJCWt0aW1l X2dldF9yZWFsX3RzNjQodCk7CiAJCSpzZXJpYWwgPSBhdWRpdF9zZXJpYWwoKTsKIAl9CiB9CkBA IC0xMzcwLDcgKzEzNzAsNyBAQCBzdHJ1Y3QgYXVkaXRfYnVmZmVyICphdWRpdF9sb2dfc3RhcnQo c3RydWN0IGF1ZGl0X2NvbnRleHQgKmN0eCwgZ2ZwX3QgZ2ZwX21hc2ssCiAJCQkJICAgICBpbnQg dHlwZSkKIHsKIAlzdHJ1Y3QgYXVkaXRfYnVmZmVyCSphYgk9IE5VTEw7Ci0Jc3RydWN0IHRpbWVz cGVjCQl0OworCXN0cnVjdCB0aW1lc3BlYzY0CXQ7CiAJdW5zaWduZWQgaW50CQl1bmluaXRpYWxp emVkX3ZhcihzZXJpYWwpOwogCWludCByZXNlcnZlID0gNTsgLyogQWxsb3cgYXRvbWljIGNhbGxl cnMgdG8gZ28gdXAgdG8gZml2ZQogCQkJICAgIGVudHJpZXMgb3ZlciB0aGUgbm9ybWFsIGJhY2ts b2cgbGltaXQgKi8KQEAgLTE0MjIsOCArMTQyMiw4IEBAIHN0cnVjdCBhdWRpdF9idWZmZXIgKmF1 ZGl0X2xvZ19zdGFydChzdHJ1Y3QgYXVkaXRfY29udGV4dCAqY3R4LCBnZnBfdCBnZnBfbWFzaywK IAogCWF1ZGl0X2dldF9zdGFtcChhYi0+Y3R4LCAmdCwgJnNlcmlhbCk7CiAKLQlhdWRpdF9sb2df Zm9ybWF0KGFiLCAiYXVkaXQoJWx1LiUwM2x1OiV1KTogIiwKLQkJCSB0LnR2X3NlYywgdC50dl9u c2VjLzEwMDAwMDAsIHNlcmlhbCk7CisJYXVkaXRfbG9nX2Zvcm1hdChhYiwgImF1ZGl0KCVsbHUu JTAzbHU6JXUpOiAiLAorCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpdC50dl9zZWMsIHQudHZfbnNl Yy8xMDAwMDAwLCBzZXJpYWwpOwogCXJldHVybiBhYjsKIH0KIApkaWZmIC0tZ2l0IGEva2VybmVs L2F1ZGl0LmggYi9rZXJuZWwvYXVkaXQuaAppbmRleCA0MzE0NDRjLi41NWQxY2EyIDEwMDY0NAot LS0gYS9rZXJuZWwvYXVkaXQuaAorKysgYi9rZXJuZWwvYXVkaXQuaApAQCAtMTEyLDcgKzExMiw3 IEBAIHN0cnVjdCBhdWRpdF9jb250ZXh0IHsKIAllbnVtIGF1ZGl0X3N0YXRlICAgIHN0YXRlLCBj dXJyZW50X3N0YXRlOwogCXVuc2lnbmVkIGludAkgICAgc2VyaWFsOyAgICAgLyogc2VyaWFsIG51 bWJlciBmb3IgcmVjb3JkICovCiAJaW50CQkgICAgbWFqb3I7ICAgICAgLyogc3lzY2FsbCBudW1i ZXIgKi8KLQlzdHJ1Y3QgdGltZXNwZWMJICAgIGN0aW1lOyAgICAgIC8qIHRpbWUgb2Ygc3lzY2Fs bCBlbnRyeSAqLworCXN0cnVjdCB0aW1lc3BlYzY0ICAgY3RpbWU7ICAgICAgLyogdGltZSBvZiBz eXNjYWxsIGVudHJ5ICovCiAJdW5zaWduZWQgbG9uZwkgICAgYXJndls0XTsgICAgLyogc3lzY2Fs bCBhcmd1bWVudHMgKi8KIAlsb25nCQkgICAgcmV0dXJuX2NvZGU7Lyogc3lzY2FsbCByZXR1cm4g Y29kZSAqLwogCXU2NAkJICAgIHByaW87CmRpZmYgLS1naXQgYS9rZXJuZWwvYXVkaXRzYy5jIGIv a2VybmVsL2F1ZGl0c2MuYwppbmRleCA1YWJmMWRjLi44ZGM3ZmU5IDEwMDY0NAotLS0gYS9rZXJu ZWwvYXVkaXRzYy5jCisrKyBiL2tlcm5lbC9hdWRpdHNjLmMKQEAgLTE1MjIsNyArMTUyMiw3IEBA IHZvaWQgX19hdWRpdF9zeXNjYWxsX2VudHJ5KGludCBtYWpvciwgdW5zaWduZWQgbG9uZyBhMSwg dW5zaWduZWQgbG9uZyBhMiwKIAkJcmV0dXJuOwogCiAJY29udGV4dC0+c2VyaWFsICAgICA9IDA7 Ci0JY29udGV4dC0+Y3RpbWUgICAgICA9IENVUlJFTlRfVElNRTsKKwlrdGltZV9nZXRfcmVhbF90 czY0KCZjb250ZXh0LT5jdGltZSk7CiAJY29udGV4dC0+aW5fc3lzY2FsbCA9IDE7CiAJY29udGV4 dC0+Y3VycmVudF9zdGF0ZSAgPSBzdGF0ZTsKIAljb250ZXh0LT5wcGlkICAgICAgID0gMDsKQEAg LTE5MzEsMTMgKzE5MzEsMTMgQEAgRVhQT1JUX1NZTUJPTF9HUEwoX19hdWRpdF9pbm9kZV9jaGls ZCk7CiAvKioKICAqIGF1ZGl0c2NfZ2V0X3N0YW1wIC0gZ2V0IGxvY2FsIGNvcGllcyBvZiBhdWRp dF9jb250ZXh0IHZhbHVlcwogICogQGN0eDogYXVkaXRfY29udGV4dCBmb3IgdGhlIHRhc2sKLSAq IEB0OiB0aW1lc3BlYyB0byBzdG9yZSB0aW1lIHJlY29yZGVkIGluIHRoZSBhdWRpdF9jb250ZXh0 CisgKiBAdDogdGltZXNwZWM2NCB0byBzdG9yZSB0aW1lIHJlY29yZGVkIGluIHRoZSBhdWRpdF9j b250ZXh0CiAgKiBAc2VyaWFsOiBzZXJpYWwgdmFsdWUgdGhhdCBpcyByZWNvcmRlZCBpbiB0aGUg YXVkaXRfY29udGV4dAogICoKICAqIEFsc28gc2V0cyB0aGUgY29udGV4dCBhcyBhdWRpdGFibGUu CiAgKi8KIGludCBhdWRpdHNjX2dldF9zdGFtcChzdHJ1Y3QgYXVkaXRfY29udGV4dCAqY3R4LAot CQkgICAgICAgc3RydWN0IHRpbWVzcGVjICp0LCB1bnNpZ25lZCBpbnQgKnNlcmlhbCkKKwkJICAg ICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp0LCB1bnNpZ25lZCBpbnQgKnNlcmlhbCkKIHsKIAlpZiAo IWN0eC0+aW5fc3lzY2FsbCkKIAkJcmV0dXJuIDA7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWTIwMzggbWFpbGluZyBsaXN0ClkyMDM4 QGxpc3RzLmxpbmFyby5vcmcKaHR0cHM6Ly9saXN0cy5saW5hcm8ub3JnL21haWxtYW4vbGlzdGlu Zm8veTIwMzgK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752065AbcJAXnk (ORCPT ); Sat, 1 Oct 2016 19:43:40 -0400 Received: from mail-pa0-f67.google.com ([209.85.220.67]:36444 "EHLO mail-pa0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751187AbcJAXnb (ORCPT ); Sat, 1 Oct 2016 19:43:31 -0400 From: Deepa Dinamani To: linux-kernel@vger.kernel.org Cc: arnd@arndb.de, y2038@lists.linaro.org, Eric Paris , Paul Moore , Richard Guy Briggs , linux-audit@redhat.com Subject: [PATCH] audit: Use timespec64 to represent audit timestamps Date: Sat, 1 Oct 2016 16:43:26 -0700 Message-Id: <1475365406-1653-1-git-send-email-deepa.kernel@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org struct timespec is not y2038 safe. Audit timestamps are recorded in string format into an audit buffer for a given context. These mark the entry timestamps for the syscalls. Use y2038 safe struct timespec64 to represent the times. The log strings can handle this transition as strings can hold upto 1024 characters. Signed-off-by: Deepa Dinamani Reviewed-by: Arnd Bergmann Acked-by: Paul Moore Acked-by: Richard Guy Briggs Cc: Eric Paris Cc: Paul Moore Cc: Richard Guy Briggs Cc: linux-audit@redhat.com --- include/linux/audit.h | 4 ++-- kernel/audit.c | 10 +++++----- kernel/audit.h | 2 +- kernel/auditsc.c | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/linux/audit.h b/include/linux/audit.h index 9d4443f..e51782b 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -332,7 +332,7 @@ static inline void audit_ptrace(struct task_struct *t) /* Private API (for audit.c only) */ extern unsigned int audit_serial(void); extern int auditsc_get_stamp(struct audit_context *ctx, - struct timespec *t, unsigned int *serial); + struct timespec64 *t, unsigned int *serial); extern int audit_set_loginuid(kuid_t loginuid); static inline kuid_t audit_get_loginuid(struct task_struct *tsk) @@ -490,7 +490,7 @@ static inline void __audit_seccomp(unsigned long syscall, long signr, int code) static inline void audit_seccomp(unsigned long syscall, long signr, int code) { } static inline int auditsc_get_stamp(struct audit_context *ctx, - struct timespec *t, unsigned int *serial) + struct timespec64 *t, unsigned int *serial) { return 0; } diff --git a/kernel/audit.c b/kernel/audit.c index a8a91bd..b03b6c7 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -1325,10 +1325,10 @@ unsigned int audit_serial(void) } static inline void audit_get_stamp(struct audit_context *ctx, - struct timespec *t, unsigned int *serial) + struct timespec64 *t, unsigned int *serial) { if (!ctx || !auditsc_get_stamp(ctx, t, serial)) { - *t = CURRENT_TIME; + ktime_get_real_ts64(t); *serial = audit_serial(); } } @@ -1370,7 +1370,7 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int type) { struct audit_buffer *ab = NULL; - struct timespec t; + struct timespec64 t; unsigned int uninitialized_var(serial); int reserve = 5; /* Allow atomic callers to go up to five entries over the normal backlog limit */ @@ -1422,8 +1422,8 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, audit_get_stamp(ab->ctx, &t, &serial); - audit_log_format(ab, "audit(%lu.%03lu:%u): ", - t.tv_sec, t.tv_nsec/1000000, serial); + audit_log_format(ab, "audit(%llu.%03lu:%u): ", + (unsigned long long)t.tv_sec, t.tv_nsec/1000000, serial); return ab; } diff --git a/kernel/audit.h b/kernel/audit.h index 431444c..55d1ca2 100644 --- a/kernel/audit.h +++ b/kernel/audit.h @@ -112,7 +112,7 @@ struct audit_context { enum audit_state state, current_state; unsigned int serial; /* serial number for record */ int major; /* syscall number */ - struct timespec ctime; /* time of syscall entry */ + struct timespec64 ctime; /* time of syscall entry */ unsigned long argv[4]; /* syscall arguments */ long return_code;/* syscall return code */ u64 prio; diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 5abf1dc..8dc7fe9 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -1522,7 +1522,7 @@ void __audit_syscall_entry(int major, unsigned long a1, unsigned long a2, return; context->serial = 0; - context->ctime = CURRENT_TIME; + ktime_get_real_ts64(&context->ctime); context->in_syscall = 1; context->current_state = state; context->ppid = 0; @@ -1931,13 +1931,13 @@ EXPORT_SYMBOL_GPL(__audit_inode_child); /** * auditsc_get_stamp - get local copies of audit_context values * @ctx: audit_context for the task - * @t: timespec to store time recorded in the audit_context + * @t: timespec64 to store time recorded in the audit_context * @serial: serial value that is recorded in the audit_context * * Also sets the context as auditable. */ int auditsc_get_stamp(struct audit_context *ctx, - struct timespec *t, unsigned int *serial) + struct timespec64 *t, unsigned int *serial) { if (!ctx->in_syscall) return 0; -- 2.7.4