From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751895AbcFTAlT (ORCPT ); Sun, 19 Jun 2016 20:41:19 -0400 Received: from mail-pa0-f65.google.com ([209.85.220.65]:32898 "EHLO mail-pa0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751525AbcFTAlE (ORCPT ); Sun, 19 Jun 2016 20:41:04 -0400 From: Deepa Dinamani To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: arnd@arndb.de, tglx@linutronix.de, torvalds@linux-foundation.org, tytso@mit.edu, viro@zeniv.linux.org.uk, y2038@lists.linaro.org, Paul Moore , Eric Paris , linux-audit@redhat.com Subject: [PATCH v2 17/24] audit: Use timespec64 to represent audit timestamps Date: Sun, 19 Jun 2016 17:27:16 -0700 Message-Id: <1466382443-11063-18-git-send-email-deepa.kernel@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1466382443-11063-1-git-send-email-deepa.kernel@gmail.com> References: <1466382443-11063-1-git-send-email-deepa.kernel@gmail.com> 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 Cc: Paul Moore Cc: Eric Paris Cc: linux-audit@redhat.com Acked-by: Paul Moore --- 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 961a417..2f6a1123 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -335,7 +335,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) @@ -510,7 +510,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 22bb4f2..6c2f405 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 cbbe6bb..029d674 100644 --- a/kernel/audit.h +++ b/kernel/audit.h @@ -111,7 +111,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 fb1a3df..591c726 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -1527,7 +1527,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; @@ -1936,13 +1936,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; -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepa Dinamani Subject: [PATCH v2 17/24] audit: Use timespec64 to represent audit timestamps Date: Sun, 19 Jun 2016 17:27:16 -0700 Message-ID: <1466382443-11063-18-git-send-email-deepa.kernel@gmail.com> References: <1466382443-11063-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: In-Reply-To: <1466382443-11063-1-git-send-email-deepa.kernel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: tytso@mit.edu, Paul Moore , arnd@arndb.de, y2038@lists.linaro.org, Eric Paris , linux-audit@redhat.com, viro@zeniv.linux.org.uk, tglx@linutronix.de, torvalds@linux-foundation.org List-Id: linux-audit@redhat.com c3RydWN0IHRpbWVzcGVjIGlzIG5vdCB5MjAzOCBzYWZlLgpBdWRpdCB0aW1lc3RhbXBzIGFyZSBy ZWNvcmRlZCBpbiBzdHJpbmcgZm9ybWF0IGludG8KYW4gYXVkaXQgYnVmZmVyIGZvciBhIGdpdmVu IGNvbnRleHQuClRoZXNlIG1hcmsgdGhlIGVudHJ5IHRpbWVzdGFtcHMgZm9yIHRoZSBzeXNjYWxs cy4KVXNlIHkyMDM4IHNhZmUgc3RydWN0IHRpbWVzcGVjNjQgdG8gcmVwcmVzZW50IHRoZSB0aW1l cy4KVGhlIGxvZyBzdHJpbmdzIGNhbiBoYW5kbGUgdGhpcyB0cmFuc2l0aW9uIGFzIHN0cmluZ3Mg Y2FuCmhvbGQgdXB0byAxMDI0IGNoYXJhY3RlcnMuCgpTaWduZWQtb2ZmLWJ5OiBEZWVwYSBEaW5h bWFuaSA8ZGVlcGEua2VybmVsQGdtYWlsLmNvbT4KQ2M6IFBhdWwgTW9vcmUgPHBhdWxAcGF1bC1t b29yZS5jb20+CkNjOiBFcmljIFBhcmlzIDxlcGFyaXNAcmVkaGF0LmNvbT4KQ2M6IGxpbnV4LWF1 ZGl0QHJlZGhhdC5jb20KQWNrZWQtYnk6IFBhdWwgTW9vcmUgPHBhdWxAcGF1bC1tb29yZS5jb20+ Ci0tLQogaW5jbHVkZS9saW51eC9hdWRpdC5oIHwgIDQgKystLQoga2VybmVsL2F1ZGl0LmMgICAg ICAgIHwgMTAgKysrKystLS0tLQoga2VybmVsL2F1ZGl0LmggICAgICAgIHwgIDIgKy0KIGtlcm5l bC9hdWRpdHNjLmMgICAgICB8ICA2ICsrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRp b25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2F1ZGl0 LmggYi9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKaW5kZXggOTYxYTQxNy4uMmY2YTExMjMgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvYXVkaXQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgK QEAgLTMzNSw3ICszMzUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfcHRyYWNlKHN0cnVj dCB0YXNrX3N0cnVjdCAqdCkKIAkJCQkvKiBQcml2YXRlIEFQSSAoZm9yIGF1ZGl0LmMgb25seSkg Ki8KIGV4dGVybiB1bnNpZ25lZCBpbnQgYXVkaXRfc2VyaWFsKHZvaWQpOwogZXh0ZXJuIGludCBh dWRpdHNjX2dldF9zdGFtcChzdHJ1Y3QgYXVkaXRfY29udGV4dCAqY3R4LAotCQkJICAgICAgc3Ry dWN0IHRpbWVzcGVjICp0LCB1bnNpZ25lZCBpbnQgKnNlcmlhbCk7CisJCQkgICAgICBzdHJ1Y3Qg dGltZXNwZWM2NCAqdCwgdW5zaWduZWQgaW50ICpzZXJpYWwpOwogZXh0ZXJuIGludCBhdWRpdF9z ZXRfbG9naW51aWQoa3VpZF90IGxvZ2ludWlkKTsKIAogc3RhdGljIGlubGluZSBrdWlkX3QgYXVk aXRfZ2V0X2xvZ2ludWlkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQpAQCAtNTEwLDcgKzUxMCw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2F1ZGl0X3NlY2NvbXAodW5zaWduZWQgbG9uZyBzeXNj YWxsLCBsb25nIHNpZ25yLCBpbnQgY29kZSkKIHN0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9zZWNj b21wKHVuc2lnbmVkIGxvbmcgc3lzY2FsbCwgbG9uZyBzaWduciwgaW50IGNvZGUpCiB7IH0KIHN0 YXRpYyBpbmxpbmUgaW50IGF1ZGl0c2NfZ2V0X3N0YW1wKHN0cnVjdCBhdWRpdF9jb250ZXh0ICpj dHgsCi0JCQkgICAgICBzdHJ1Y3QgdGltZXNwZWMgKnQsIHVuc2lnbmVkIGludCAqc2VyaWFsKQor CQkJICAgICAgc3RydWN0IHRpbWVzcGVjNjQgKnQsIHVuc2lnbmVkIGludCAqc2VyaWFsKQogewog CXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0LmMgYi9rZXJuZWwvYXVkaXQu YwppbmRleCAyMmJiNGYyLi42YzJmNDA1IDEwMDY0NAotLS0gYS9rZXJuZWwvYXVkaXQuYworKysg Yi9rZXJuZWwvYXVkaXQuYwpAQCAtMTMyNSwxMCArMTMyNSwxMCBAQCB1bnNpZ25lZCBpbnQgYXVk aXRfc2VyaWFsKHZvaWQpCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9nZXRfc3RhbXAo c3RydWN0IGF1ZGl0X2NvbnRleHQgKmN0eCwKLQkJCQkgICBzdHJ1Y3QgdGltZXNwZWMgKnQsIHVu c2lnbmVkIGludCAqc2VyaWFsKQorCQkJCSAgIHN0cnVjdCB0aW1lc3BlYzY0ICp0LCB1bnNpZ25l ZCBpbnQgKnNlcmlhbCkKIHsKIAlpZiAoIWN0eCB8fCAhYXVkaXRzY19nZXRfc3RhbXAoY3R4LCB0 LCBzZXJpYWwpKSB7Ci0JCSp0ID0gQ1VSUkVOVF9USU1FOworCQlrdGltZV9nZXRfcmVhbF90czY0 KHQpOwogCQkqc2VyaWFsID0gYXVkaXRfc2VyaWFsKCk7CiAJfQogfQpAQCAtMTM3MCw3ICsxMzcw LDcgQEAgc3RydWN0IGF1ZGl0X2J1ZmZlciAqYXVkaXRfbG9nX3N0YXJ0KHN0cnVjdCBhdWRpdF9j b250ZXh0ICpjdHgsIGdmcF90IGdmcF9tYXNrLAogCQkJCSAgICAgaW50IHR5cGUpCiB7CiAJc3Ry dWN0IGF1ZGl0X2J1ZmZlcgkqYWIJPSBOVUxMOwotCXN0cnVjdCB0aW1lc3BlYwkJdDsKKwlzdHJ1 Y3QgdGltZXNwZWM2NAl0OwogCXVuc2lnbmVkIGludAkJdW5pbml0aWFsaXplZF92YXIoc2VyaWFs KTsKIAlpbnQgcmVzZXJ2ZSA9IDU7IC8qIEFsbG93IGF0b21pYyBjYWxsZXJzIHRvIGdvIHVwIHRv IGZpdmUKIAkJCSAgICBlbnRyaWVzIG92ZXIgdGhlIG5vcm1hbCBiYWNrbG9nIGxpbWl0ICovCkBA IC0xNDIyLDggKzE0MjIsOCBAQCBzdHJ1Y3QgYXVkaXRfYnVmZmVyICphdWRpdF9sb2dfc3RhcnQo c3RydWN0IGF1ZGl0X2NvbnRleHQgKmN0eCwgZ2ZwX3QgZ2ZwX21hc2ssCiAKIAlhdWRpdF9nZXRf c3RhbXAoYWItPmN0eCwgJnQsICZzZXJpYWwpOwogCi0JYXVkaXRfbG9nX2Zvcm1hdChhYiwgImF1 ZGl0KCVsdS4lMDNsdToldSk6ICIsCi0JCQkgdC50dl9zZWMsIHQudHZfbnNlYy8xMDAwMDAwLCBz ZXJpYWwpOworCWF1ZGl0X2xvZ19mb3JtYXQoYWIsICJhdWRpdCglbGx1LiUwM2x1OiV1KTogIiwK KwkJCSAodW5zaWduZWQgbG9uZyBsb25nKXQudHZfc2VjLCB0LnR2X25zZWMvMTAwMDAwMCwgc2Vy aWFsKTsKIAlyZXR1cm4gYWI7CiB9CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9hdWRpdC5oIGIva2Vy bmVsL2F1ZGl0LmgKaW5kZXggY2JiZTZiYi4uMDI5ZDY3NCAxMDA2NDQKLS0tIGEva2VybmVsL2F1 ZGl0LmgKKysrIGIva2VybmVsL2F1ZGl0LmgKQEAgLTExMSw3ICsxMTEsNyBAQCBzdHJ1Y3QgYXVk aXRfY29udGV4dCB7CiAJZW51bSBhdWRpdF9zdGF0ZSAgICBzdGF0ZSwgY3VycmVudF9zdGF0ZTsK IAl1bnNpZ25lZCBpbnQJICAgIHNlcmlhbDsgICAgIC8qIHNlcmlhbCBudW1iZXIgZm9yIHJlY29y ZCAqLwogCWludAkJICAgIG1ham9yOyAgICAgIC8qIHN5c2NhbGwgbnVtYmVyICovCi0Jc3RydWN0 IHRpbWVzcGVjCSAgICBjdGltZTsgICAgICAvKiB0aW1lIG9mIHN5c2NhbGwgZW50cnkgKi8KKwlz dHJ1Y3QgdGltZXNwZWM2NCAgIGN0aW1lOyAgICAgIC8qIHRpbWUgb2Ygc3lzY2FsbCBlbnRyeSAq LwogCXVuc2lnbmVkIGxvbmcJICAgIGFyZ3ZbNF07ICAgIC8qIHN5c2NhbGwgYXJndW1lbnRzICov CiAJbG9uZwkJICAgIHJldHVybl9jb2RlOy8qIHN5c2NhbGwgcmV0dXJuIGNvZGUgKi8KIAl1NjQJ CSAgICBwcmlvOwpkaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNj LmMKaW5kZXggZmIxYTNkZi4uNTkxYzcyNiAxMDA2NDQKLS0tIGEva2VybmVsL2F1ZGl0c2MuYwor KysgYi9rZXJuZWwvYXVkaXRzYy5jCkBAIC0xNTI3LDcgKzE1MjcsNyBAQCB2b2lkIF9fYXVkaXRf c3lzY2FsbF9lbnRyeShpbnQgbWFqb3IsIHVuc2lnbmVkIGxvbmcgYTEsIHVuc2lnbmVkIGxvbmcg YTIsCiAJCXJldHVybjsKIAogCWNvbnRleHQtPnNlcmlhbCAgICAgPSAwOwotCWNvbnRleHQtPmN0 aW1lICAgICAgPSBDVVJSRU5UX1RJTUU7CisJa3RpbWVfZ2V0X3JlYWxfdHM2NCgmY29udGV4dC0+ Y3RpbWUpOwogCWNvbnRleHQtPmluX3N5c2NhbGwgPSAxOwogCWNvbnRleHQtPmN1cnJlbnRfc3Rh dGUgID0gc3RhdGU7CiAJY29udGV4dC0+cHBpZCAgICAgICA9IDA7CkBAIC0xOTM2LDEzICsxOTM2 LDEzIEBAIEVYUE9SVF9TWU1CT0xfR1BMKF9fYXVkaXRfaW5vZGVfY2hpbGQpOwogLyoqCiAgKiBh dWRpdHNjX2dldF9zdGFtcCAtIGdldCBsb2NhbCBjb3BpZXMgb2YgYXVkaXRfY29udGV4dCB2YWx1 ZXMKICAqIEBjdHg6IGF1ZGl0X2NvbnRleHQgZm9yIHRoZSB0YXNrCi0gKiBAdDogdGltZXNwZWMg dG8gc3RvcmUgdGltZSByZWNvcmRlZCBpbiB0aGUgYXVkaXRfY29udGV4dAorICogQHQ6IHRpbWVz cGVjNjQgdG8gc3RvcmUgdGltZSByZWNvcmRlZCBpbiB0aGUgYXVkaXRfY29udGV4dAogICogQHNl cmlhbDogc2VyaWFsIHZhbHVlIHRoYXQgaXMgcmVjb3JkZWQgaW4gdGhlIGF1ZGl0X2NvbnRleHQK ICAqCiAgKiBBbHNvIHNldHMgdGhlIGNvbnRleHQgYXMgYXVkaXRhYmxlLgogICovCiBpbnQgYXVk aXRzY19nZXRfc3RhbXAoc3RydWN0IGF1ZGl0X2NvbnRleHQgKmN0eCwKLQkJICAgICAgIHN0cnVj dCB0aW1lc3BlYyAqdCwgdW5zaWduZWQgaW50ICpzZXJpYWwpCisJCSAgICAgICBzdHJ1Y3QgdGlt ZXNwZWM2NCAqdCwgdW5zaWduZWQgaW50ICpzZXJpYWwpCiB7CiAJaWYgKCFjdHgtPmluX3N5c2Nh bGwpCiAJCXJldHVybiAwOwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClkyMDM4IG1haWxpbmcgbGlzdApZMjAzOEBsaXN0cy5saW5hcm8u b3JnCmh0dHBzOi8vbGlzdHMubGluYXJvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3kyMDM4Cg==