]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ACPICA: utilities: Fix overflow check in vsnprintf()
authorgldrk <me@rarity.fan>
Fri, 25 Apr 2025 19:21:52 +0000 (21:21 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 12 May 2025 13:37:50 +0000 (15:37 +0200)
ACPICA commit d9d59b7918514ae55063b93f3ec041b1a569bf49

The old version breaks sprintf on 64-bit systems for buffers
outside [0..UINT32_MAX].

Link: https://github.com/acpica/acpica/commit/d9d59b79
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/4994935.GXAFRqVoOG@rjwysocki.net
Signed-off-by: gldrk <me@rarity.fan>
[ rjw: Added the tag from gldrk ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/utprint.c

index 42b30b9f93128e1c246875965010e2ab7930f8a2..7fad03c5252c3533999ad09c712254be767712ea 100644 (file)
@@ -333,11 +333,8 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args)
 
        pos = string;
 
-       if (size != ACPI_UINT32_MAX) {
-               end = string + size;
-       } else {
-               end = ACPI_CAST_PTR(char, ACPI_UINT32_MAX);
-       }
+       size = ACPI_MIN(size, ACPI_PTR_DIFF(ACPI_MAX_PTR, string));
+       end = string + size;
 
        for (; *format; ++format) {
                if (*format != '%') {