ACPICA: utilities: Fix overflow check in vsnprintf()
[ Upstream commit 12b660251007e00a3e4d47ec62dbe3a7ace7023e ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
558ba4afdf
commit
cf961a38e4
@@ -333,11 +333,8 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args)
|
|||||||
|
|
||||||
pos = string;
|
pos = string;
|
||||||
|
|
||||||
if (size != ACPI_UINT32_MAX) {
|
size = ACPI_MIN(size, ACPI_PTR_DIFF(ACPI_MAX_PTR, string));
|
||||||
end = string + size;
|
end = string + size;
|
||||||
} else {
|
|
||||||
end = ACPI_CAST_PTR(char, ACPI_UINT32_MAX);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (; *format; ++format) {
|
for (; *format; ++format) {
|
||||||
if (*format != '%') {
|
if (*format != '%') {
|
||||||
|
Reference in New Issue
Block a user