From: Nick Desaulniers <ndesaulniers@google.com> To: Robert Moore <robert.moore@intel.com>, Erik Kaneda <erik.kaneda@intel.com>, "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, Len Brown <lenb@kernel.org> Cc: Ard Biesheuvel <ardb@kernel.org>, dvyukov@google.com, glider@google.com, guohanjun@huawei.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, lorenzo.pieralisi@arm.com, mark.rutland@arm.com, ndesaulniers@google.com, pcc@google.com, rjw@rjwysocki.net, will@kernel.org, stable@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org Subject: [PATCH] ACPICA: fix UBSAN warning using __builtin_offsetof Date: Mon, 1 Jun 2020 16:18:05 -0700 [thread overview] Message-ID: <20200601231805.207441-1-ndesaulniers@google.com> (raw) In-Reply-To: <CAMj1kXErFuvOoG=DB6sz5HBvDuHDiKwWD8uOyLuxaX-u8-+dbA@mail.gmail.com> Will reported UBSAN warnings: UBSAN: null-ptr-deref in drivers/acpi/acpica/tbfadt.c:459:37 UBSAN: null-ptr-deref in arch/arm64/kernel/smp.c:596:6 Looks like the emulated offsetof macro ACPI_OFFSET is causing these. We can avoid this by using the compiler builtin, __builtin_offsetof. The non-kernel runtime of UBSAN would print: runtime error: member access within null pointer of type for this macro. Link: https://lore.kernel.org/lkml/20200521100952.GA5360@willie-the-truck/ Cc: stable@vger.kernel.org Reported-by: Will Deacon <will@kernel.org> Suggested-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> --- include/acpi/actypes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index 4defed58ea33..04359c70b198 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h @@ -508,7 +508,7 @@ typedef u64 acpi_integer; #define ACPI_TO_POINTER(i) ACPI_CAST_PTR (void, (acpi_size) (i)) #define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) 0) -#define ACPI_OFFSET(d, f) ACPI_PTR_DIFF (&(((d *) 0)->f), (void *) 0) +#define ACPI_OFFSET(d, f) __builtin_offsetof(d, f) #define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) -- 2.27.0.rc2.251.g90737beb825-goog
WARNING: multiple messages have this Message-ID (diff)
From: Nick Desaulniers <ndesaulniers@google.com> To: Robert Moore <robert.moore@intel.com>, Erik Kaneda <erik.kaneda@intel.com>, "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, Len Brown <lenb@kernel.org> Cc: mark.rutland@arm.com, lorenzo.pieralisi@arm.com, will@kernel.org, rjw@rjwysocki.net, ndesaulniers@google.com, linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux-acpi@vger.kernel.org, glider@google.com, dvyukov@google.com, guohanjun@huawei.com, pcc@google.com, Ard Biesheuvel <ardb@kernel.org>, linux-arm-kernel@lists.infradead.org, devel@acpica.org Subject: [PATCH] ACPICA: fix UBSAN warning using __builtin_offsetof Date: Mon, 1 Jun 2020 16:18:05 -0700 [thread overview] Message-ID: <20200601231805.207441-1-ndesaulniers@google.com> (raw) In-Reply-To: <CAMj1kXErFuvOoG=DB6sz5HBvDuHDiKwWD8uOyLuxaX-u8-+dbA@mail.gmail.com> Will reported UBSAN warnings: UBSAN: null-ptr-deref in drivers/acpi/acpica/tbfadt.c:459:37 UBSAN: null-ptr-deref in arch/arm64/kernel/smp.c:596:6 Looks like the emulated offsetof macro ACPI_OFFSET is causing these. We can avoid this by using the compiler builtin, __builtin_offsetof. The non-kernel runtime of UBSAN would print: runtime error: member access within null pointer of type for this macro. Link: https://lore.kernel.org/lkml/20200521100952.GA5360@willie-the-truck/ Cc: stable@vger.kernel.org Reported-by: Will Deacon <will@kernel.org> Suggested-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> --- include/acpi/actypes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index 4defed58ea33..04359c70b198 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h @@ -508,7 +508,7 @@ typedef u64 acpi_integer; #define ACPI_TO_POINTER(i) ACPI_CAST_PTR (void, (acpi_size) (i)) #define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) 0) -#define ACPI_OFFSET(d, f) ACPI_PTR_DIFF (&(((d *) 0)->f), (void *) 0) +#define ACPI_OFFSET(d, f) __builtin_offsetof(d, f) #define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) -- 2.27.0.rc2.251.g90737beb825-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-06-01 23:18 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-21 10:09 arm64/acpi: NULL dereference reports from UBSAN at boot Will Deacon 2020-05-21 10:09 ` Will Deacon 2020-05-21 17:37 ` Lorenzo Pieralisi 2020-05-21 17:37 ` Lorenzo Pieralisi 2020-05-26 20:21 ` Will Deacon 2020-05-26 20:21 ` Will Deacon 2020-05-27 13:41 ` Lorenzo Pieralisi 2020-05-27 13:41 ` Lorenzo Pieralisi 2020-06-01 7:05 ` Will Deacon 2020-06-01 7:05 ` Will Deacon 2020-06-01 21:51 ` Nick Desaulniers 2020-06-01 21:51 ` Nick Desaulniers 2020-06-01 21:57 ` Ard Biesheuvel 2020-06-01 21:57 ` Ard Biesheuvel 2020-06-01 22:19 ` Nick Desaulniers 2020-06-01 22:19 ` Nick Desaulniers 2020-06-01 22:28 ` Ard Biesheuvel 2020-06-01 22:28 ` Ard Biesheuvel 2020-06-01 23:18 ` Nick Desaulniers [this message] 2020-06-01 23:18 ` [PATCH] ACPICA: fix UBSAN warning using __builtin_offsetof Nick Desaulniers 2020-06-01 23:37 ` Peter Collingbourne 2020-06-01 23:37 ` Peter Collingbourne 2020-06-01 23:48 ` Nick Desaulniers 2020-06-01 23:48 ` Nick Desaulniers 2020-06-02 0:02 ` Kaneda, Erik 2020-06-02 0:02 ` Kaneda, Erik 2020-06-02 18:46 ` Nick Desaulniers 2020-06-02 18:46 ` Nick Desaulniers 2020-06-08 14:51 ` Will Deacon 2020-06-08 14:51 ` Will Deacon 2020-06-08 20:29 ` Nick Desaulniers 2020-06-08 20:29 ` Nick Desaulniers 2020-06-08 20:38 ` [PATCH v2] arm64: acpi: fix UBSAN warning Nick Desaulniers 2020-06-08 20:38 ` Nick Desaulniers 2020-06-09 17:46 ` Lorenzo Pieralisi 2020-06-09 17:46 ` Lorenzo Pieralisi 2020-06-09 19:50 ` Jeremy Linton 2020-06-09 19:50 ` Jeremy Linton 2020-06-10 11:21 ` Will Deacon 2020-06-10 11:21 ` Will Deacon 2020-06-08 23:20 ` [PATCH] ACPICA: fix UBSAN warning using __builtin_offsetof Kaneda, Erik 2020-06-08 23:20 ` Kaneda, Erik 2020-06-10 23:06 ` Kaneda, Erik 2020-06-10 23:06 ` Kaneda, Erik 2020-06-10 23:29 ` Nick Desaulniers 2020-06-10 23:29 ` Nick Desaulniers 2020-06-10 23:46 ` Jung-uk Kim 2020-06-10 23:46 ` [Devel] " Jung-uk Kim 2020-06-10 23:46 ` Jung-uk Kim 2020-06-11 16:45 ` [Devel] " Kaneda, Erik 2020-06-11 16:45 ` Kaneda, Erik 2020-06-11 17:06 ` Nick Desaulniers 2020-06-11 17:06 ` Nick Desaulniers 2020-06-16 21:39 ` Kaneda, Erik 2020-06-16 21:39 ` Kaneda, Erik 2020-06-10 23:31 ` Jung-uk Kim 2020-06-10 23:31 ` [Devel] " Jung-uk Kim 2020-06-10 23:31 ` Jung-uk Kim 2020-05-22 8:07 ` arm64/acpi: NULL dereference reports from UBSAN at boot Hanjun Guo 2020-05-22 8:07 ` Hanjun Guo 2020-05-22 9:43 ` Hanjun Guo 2020-05-22 9:43 ` Hanjun Guo
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200601231805.207441-1-ndesaulniers@google.com \ --to=ndesaulniers@google.com \ --cc=ardb@kernel.org \ --cc=devel@acpica.org \ --cc=dvyukov@google.com \ --cc=erik.kaneda@intel.com \ --cc=glider@google.com \ --cc=guohanjun@huawei.com \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=mark.rutland@arm.com \ --cc=pcc@google.com \ --cc=rafael.j.wysocki@intel.com \ --cc=rjw@rjwysocki.net \ --cc=robert.moore@intel.com \ --cc=stable@vger.kernel.org \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.