git: d0d5a75f66a4 - main - sysutils/acpi_call: Check for errors from copyout()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 03 Jan 2024 21:54:24 UTC
The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/ports/commit/?id=d0d5a75f66a400f72b5206debdf60ca5fa05da53 commit d0d5a75f66a400f72b5206debdf60ca5fa05da53 Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2024-01-02 18:18:53 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2024-01-03 21:53:33 +0000 sysutils/acpi_call: Check for errors from copyout() The base system will soon require all copyout() calls to either preserve the return value or explicitly ignore it. PR: 275986 Approved by: antoine --- sysutils/acpi_call/Makefile | 2 +- sysutils/acpi_call/files/patch-acpi__call.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/sysutils/acpi_call/Makefile b/sysutils/acpi_call/Makefile index b56ff57106a8..0b2b810542a9 100644 --- a/sysutils/acpi_call/Makefile +++ b/sysutils/acpi_call/Makefile @@ -1,6 +1,6 @@ PORTNAME= acpi_call PORTVERSION= 1.0.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils MASTER_SITES= http://projects.ukrweb.net/files/ \ http://imax.in.ua/files/ diff --git a/sysutils/acpi_call/files/patch-acpi__call.c b/sysutils/acpi_call/files/patch-acpi__call.c index 39d1785bae2d..a278233a969e 100644 --- a/sysutils/acpi_call/files/patch-acpi__call.c +++ b/sysutils/acpi_call/files/patch-acpi__call.c @@ -12,7 +12,7 @@ #include <sys/kernel.h> #if __FreeBSD__ >= 8 # include <contrib/dev/acpica/include/acpi.h> -@@ -45,18 +45,97 @@ +@@ -45,18 +45,99 @@ void acpi_call_fixup_pointers(ACPI_OBJECT *p, UINT8 *o void acpi_call_fixup_pointers(ACPI_OBJECT *p, UINT8 *orig); @@ -95,7 +95,9 @@ + ACPI_OBJECT_LIST *args; ACPI_BUFFER result; + char path[256]; ++ int error; ++ error = 0; result.Length = ACPI_ALLOCATE_BUFFER; result.Pointer = NULL; @@ -111,13 +113,14 @@ if (ACPI_SUCCESS(params->retval)) { if (result.Pointer != NULL) -@@ -64,30 +143,31 @@ acpi_call_ioctl(u_long cmd, caddr_t addr, void *arg) +@@ -64,30 +145,31 @@ acpi_call_ioctl(u_long cmd, caddr_t addr, void *arg) if (params->result.Pointer != NULL) { params->result.Length = min(params->result.Length, result.Length); +- copyout(result.Pointer, params->result.Pointer, + if (result.Length >= sizeof(ACPI_OBJECT)) + acpi_call_fixup_pointers((ACPI_OBJECT*)result.Pointer, params->result.Pointer); - copyout(result.Pointer, params->result.Pointer, ++ error = copyout(result.Pointer, params->result.Pointer, params->result.Length); params->reslen = result.Length; - if (result.Length >= sizeof(ACPI_OBJECT)) @@ -129,7 +132,8 @@ + free_acpi_object_list(args); } - return (0); +- return (0); ++ return error; } void