acpi: Fix format string type mistakes
Subsystems (2)
PATCH 1/1 acpi: Fix format string type mistakes
From: Emese Revfy <[email protected]>
This adds the missing __printf attribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by the attribute.
--- drivers/acpi/acpica/dbhistry.c | 2 +- drivers/acpi/acpica/dbinput.c | 10 ++--- drivers/acpi/acpica/dbstats.c | 88 +++++++++++++++++++++--------------------- drivers/acpi/acpica/utdebug.c | 2 +- include/acpi/acpiosxf.h | 3 +- 5 files changed, 53 insertions(+), 52 deletions(-)
drivers/acpi/acpica/dbhistry.c +1 -1
@@ -155,7 +155,7 @@ void acpi_db_display_history(void)for (i =0 ; i < acpi_gbl_num_history; i++) {if (acpi_gbl_history_buffer[history_index].command) { - acpi_os_printf("%3ld %s\n", + acpi_os_printf("%3u %s\n", acpi_gbl_history_buffer[history_index]. cmd_num, acpi_gbl_history_buffer[history_index].
drivers/acpi/acpica/dbinput.c +5 -5
@@ -608,7 +608,7 @@ static u32 acpi_db_get_line(char *input_buffer) (acpi_gbl_db_parsed_buf, sizeof(acpi_gbl_db_parsed_buf), input_buffer)) {acpi_os_printf - ("Buffer overflow while parsing input line (max %u characters)\n" , + ("Buffer overflow while parsing input line (max %lu characters)\n" ,sizeof (acpi_gbl_db_parsed_buf));return (0 ); }
@@ -864,24 +864,24 @@ acpi_db_command_dispatch(char *input_buffer,if (param_count ==0 ) {acpi_os_printf - ("Current debug level for file output is: %8.8lX\n" , + ("Current debug level for file output is: %8.8X\n" , acpi_gbl_db_debug_level);acpi_os_printf - ("Current debug level for console output is: %8.8lX\n" , + ("Current debug level for console output is: %8.8X\n" , acpi_gbl_db_console_debug_level); }else if (param_count ==2 ) { temp = acpi_gbl_db_console_debug_level; acpi_gbl_db_console_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 );acpi_os_printf - ("Debug Level for console output was %8.8lX, now %8.8lX\n" , + ("Debug Level for console output was %8.8X, now %8.8X\n" , temp, acpi_gbl_db_console_debug_level); }else { temp = acpi_gbl_db_debug_level; acpi_gbl_db_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 );acpi_os_printf - ("Debug Level for file output was %8.8lX, now %8.8lX\n" , + ("Debug Level for file output was %8.8X, now %8.8X\n" , temp, acpi_gbl_db_debug_level); }break ;
drivers/acpi/acpica/dbstats.c +44 -44
164 lines not on this page · raw message
drivers/acpi/acpica/utdebug.c +1 -1
@@ -189,7 +189,7 @@ acpi_debug_print(u32 requested_debug_level,* Display the module name, current line number, thread ID (if requested), * current procedure nesting level, and the current procedure name */ -acpi_os_printf ("%9s-%04ld " , module_name, line_number); +acpi_os_printf ("%9s-%04u " , module_name, line_number);#ifdef ACPI_APPLICATION /*
include/acpi/acpiosxf.h +2 -1
@@ -337,11 +337,12 @@ acpi_status acpi_os_signal(u32 function, void *info);* Debug print routines */ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printf +__printf(1, 2) void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintf -void acpi_os_vprintf (const char *format,va_list args); +__printf(1, 0) void acpi_os_vprintf(const char *format, va_list args);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_output
Signature · 6 lines
2.7.4 -- Kees Cook Nexus Security
Rafael J. Wysocki
maintainerQuoted 9 lines · Kees Cook
From: Emese Revfy <[email protected]>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by the attribute.Signed-off-by Emese Revfy <[email protected]>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <[email protected]>
This modifies code that we get from an external projiect (ACPICA) and the bugs should be fixed in there in the first place.
Moreover, I'm not sure if adding __printf in acpiosxf.h is a good idea.
Thanks,
Rafael
Quoted 7 lines · Rafael J. Wysocki
Quoted 6 lines · Kees Cook
From: Emese Revfy <[email protected]>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by the attribute.
Quoted 6 lines
Quoted 3 lines
Signed-off-by Emese Revfy <[email protected]>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <[email protected]>This modifies code that we get from an external projiect (ACPICA) and the bugs should be fixed in there in the first place.
Who should get CCed?
Quoted 1 line
Moreover, I'm not sure if adding
__printfinacpiosxf.his a good idea.
Why not? This is going to be needed by the initify plugin to do correct detection of what's being passed around to functions...
-Kees
Signature · 2 lines
Kees Cook Nexus Security
Rafael J. Wysocki
maintainerQuoted 8 lines · Kees Cook
Quoted 7 lines · Rafael J. Wysocki
Quoted 6 lines · Kees Cook
From: Emese Revfy <[email protected]>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by the attribute.
Quoted 8 lines
Quoted 6 lines
Quoted 3 lines
Signed-off-by Emese Revfy <[email protected]>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <[email protected]>This modifies code that we get from an external projiect (ACPICA) and the bugs should be fixed in there in the first place.
Who should get CCed?
Fortunately, the right people are in the CC list already. :-)
Quoted 3 lines
Quoted 1 line
Moreover, I'm not sure if adding
__printfinacpiosxf.his a good idea.Why not?
Because it would cause that file to diverge from its upstream counterpart which would be sort of a problem.
Quoted 2 lines
This is going to be needed by the initify plugin to do correct detection of what's being passed around to functions...
I guess the question is what we will miss if we don't do that specifically for ACPICA.
Thanks,
Rafael
Quoted 32 lines
-----Original Message-----
From: keescook(a)google.com [mailto:keescook(a)google.com] On Behalf Of Kees Cook
Sent: Friday, December 16, 2016 3:04 PM
To: Rafael J. Wysocki <rafael(a)kernel.org>
Cc: Moore, Robert <robert.moore(a)intel.com>; Linux Kernel Mailing List <linux-kernel(a)vger.kernel.org>; Zheng, Lv <lv.zheng(a)intel.com>; Wysocki, Rafael J <rafael.j.wysocki(a)intel.com>; Len Brown <lenb(a)kernel.org>; ACPI Devel Maling List <linux-acpi(a)vger.kernel.org>; Emese Revfy <re.emese(a)gmail.com>; devel(a)acpica.org
Subject: Re: [PATCH] acpi: Fix format string type mistakesQuoted 1 line · Rafael J. Wysocki
On Fri, Dec 16, 2016 at 10:51 PM, Kees Cook <keescook(a)chromium.org>
Quoted 5 lines · wrote:
Quoted 5 lines
From: Emese Revfy <re.emese(a)gmail.com>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by theattribute.
Quoted 7 lines
Quoted 4 lines
Signed-off-by Emese Revfy <re.emese(a)gmail.com>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <keescook(a)chromium.org>This modifies code that we get from an external projiect (ACPICA) and the bugs should be fixed in there in the first place.
Quoted 8 lines
Who should get CCed?
Quoted 1 line
Moreover, I'm not sure if adding
__printfinacpiosxf.his a goodidea.
Why not? This is going to be needed by the initify plugin to do correct detection of what's being passed around to functions...
[Moore, Robert] It's compiler-dependent.
Quoted 5 lines
-Kees
--
Kees Cook
Nexus Security
Hi,
Quoted 251 lines
From: Kees Cook [mailto:keescook(a)chromium.org]
Subject: [PATCH] acpi: Fix format string type mistakesFrom: Emese Revfy <re.emese(a)gmail.com>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by the attribute.Signed-off-by Emese Revfy <re.emese(a)gmail.com>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <keescook(a)chromium.org>--- drivers/acpi/acpica/dbhistry.c | 2 +- drivers/acpi/acpica/dbinput.c | 10 ++--- drivers/acpi/acpica/dbstats.c | 88 +++++++++++++++++++++--------------------- drivers/acpi/acpica/utdebug.c | 2 +- include/acpi/acpiosxf.h | 3 +- 5 files changed, 53 insertions(+), 52 deletions(-)drivers/acpi/acpica/dbhistry.c +1
-1@@ -155,7 +155,7 @@ void acpi_db_display_history(void)for (i =0 ; i < acpi_gbl_num_history; i++) {if (acpi_gbl_history_buffer[history_index].command) { - acpi_os_printf("%3ld %s\n", + acpi_os_printf("%3u %s\n", acpi_gbl_history_buffer[history_index]. cmd_num, acpi_gbl_history_buffer[history_index].drivers/acpi/acpica/dbinput.c +5
-5@@ -608,7 +608,7 @@ static u32 acpi_db_get_line(char *input_buffer) (acpi_gbl_db_parsed_buf, sizeof(acpi_gbl_db_parsed_buf), input_buffer)) {acpi_os_printf - ("Buffer overflow while parsing input line (max %u characters)\n" , + ("Buffer overflow while parsing input line (max %lu characters)\n" ,sizeof (acpi_gbl_db_parsed_buf));return (0 ); }@@ -864,24 +864,24 @@ acpi_db_command_dispatch(char *input_buffer,if (param_count ==0 ) {acpi_os_printf - ("Current debug level for file output is: %8.8lX\n" , + ("Current debug level for file output is: %8.8X\n" , acpi_gbl_db_debug_level);acpi_os_printf - ("Current debug level for console output is: %8.8lX\n" , + ("Current debug level for console output is: %8.8X\n" , acpi_gbl_db_console_debug_level); }else if (param_count ==2 ) { temp = acpi_gbl_db_console_debug_level; acpi_gbl_db_console_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 );acpi_os_printf - ("Debug Level for console output was %8.8lX, now %8.8lX\n" , + ("Debug Level for console output was %8.8X, now %8.8X\n" , temp, acpi_gbl_db_console_debug_level); }else { temp = acpi_gbl_db_debug_level; acpi_gbl_db_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 );acpi_os_printf - ("Debug Level for file output was %8.8lX, now %8.8lX\n" , + ("Debug Level for file output was %8.8X, now %8.8X\n" , temp, acpi_gbl_db_debug_level); }break ;drivers/acpi/acpica/dbstats.c +44
-44@@ -377,17 +377,17 @@ acpi_status acpi_db_display_statistics(char *type_arg) "ACPI_TYPE", "NODES", "OBJECTS");for (i =0 ; i <ACPI_TYPE_NS_NODE_MAX ; i++) { -acpi_os_printf ("%16.16s % 10ld% 10ld\n" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,acpi_ut_get_type_name (i), acpi_gbl_node_type_count[i], acpi_gbl_obj_type_count[i]); } -acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"Misc/Unknown" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"Misc/Unknown" , acpi_gbl_node_type_count_misc, acpi_gbl_obj_type_count_misc); -acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"TOTALS:" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"TOTALS:" , acpi_gbl_num_nodes, acpi_gbl_num_objects);break ;@@ -415,16 +415,16 @@ acpi_status acpi_db_display_statistics(char *type_arg)case CMD_STAT_MISC :acpi_os_printf ("\nMiscellaneous Statistics:\n\n" ); -acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7ld\n" , +acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7u\n" , acpi_gbl_ps_find_count); -acpi_os_printf ("Calls to AcpiNsLookup:..........% 7ld\n" , +acpi_os_printf ("Calls to AcpiNsLookup:..........% 7u\n" , acpi_gbl_ns_lookup_count);acpi_os_printf ("\n" );acpi_os_printf ("Mutex usage:\n\n" );for (i =0 ; i <ACPI_NUM_MUTEX ; i++) { -acpi_os_printf ("%-28s: % 7ld\n" , +acpi_os_printf ("%-28s: % 7u\n" ,acpi_ut_get_mutex_name (i), acpi_gbl_mutex_info[i].use_count); }@@ -434,87 +434,87 @@ acpi_status acpi_db_display_statistics(char *type_arg)acpi_os_printf ("\nInternal object sizes:\n\n" ); -acpi_os_printf ("Common %3d\n" , +acpi_os_printf ("Common %3lu\n" ,sizeof (struct acpi_object_common )); -acpi_os_printf ("Number %3d\n" , +acpi_os_printf ("Number %3lu\n" ,sizeof (struct acpi_object_integer )); -acpi_os_printf ("String %3d\n" , +acpi_os_printf ("String %3lu\n" ,sizeof (struct acpi_object_string )); -acpi_os_printf ("Buffer %3d\n" , +acpi_os_printf ("Buffer %3lu\n" ,sizeof (struct acpi_object_buffer )); -acpi_os_printf ("Package %3d\n" , +acpi_os_printf ("Package %3lu\n" ,sizeof (struct acpi_object_package )); -acpi_os_printf ("BufferField %3d\n" , +acpi_os_printf ("BufferField %3lu\n" ,sizeof (struct acpi_object_buffer_field )); -acpi_os_printf ("Device %3d\n" , +acpi_os_printf ("Device %3lu\n" ,sizeof (struct acpi_object_device )); -acpi_os_printf ("Event %3d\n" , +acpi_os_printf ("Event %3lu\n" ,sizeof (struct acpi_object_event )); -acpi_os_printf ("Method %3d\n" , +acpi_os_printf ("Method %3lu\n" ,sizeof (struct acpi_object_method )); -acpi_os_printf ("Mutex %3d\n" , +acpi_os_printf ("Mutex %3lu\n" ,sizeof (struct acpi_object_mutex )); -acpi_os_printf ("Region %3d\n" , +acpi_os_printf ("Region %3lu\n" ,sizeof (struct acpi_object_region )); -acpi_os_printf ("PowerResource %3d\n" , +acpi_os_printf ("PowerResource %3lu\n" ,sizeof (struct acpi_object_power_resource )); -acpi_os_printf ("Processor %3d\n" , +acpi_os_printf ("Processor %3lu\n" ,sizeof (struct acpi_object_processor )); -acpi_os_printf ("ThermalZone %3d\n" , +acpi_os_printf ("ThermalZone %3lu\n" ,sizeof (struct acpi_object_thermal_zone )); -acpi_os_printf ("RegionField %3d\n" , +acpi_os_printf ("RegionField %3lu\n" ,sizeof (struct acpi_object_region_field )); -acpi_os_printf ("BankField %3d\n" , +acpi_os_printf ("BankField %3lu\n" ,sizeof (struct acpi_object_bank_field )); -acpi_os_printf ("IndexField %3d\n" , +acpi_os_printf ("IndexField %3lu\n" ,sizeof (struct acpi_object_index_field )); -acpi_os_printf ("Reference %3d\n" , +acpi_os_printf ("Reference %3lu\n" ,sizeof (struct acpi_object_reference )); -acpi_os_printf ("Notify %3d\n" , +acpi_os_printf ("Notify %3lu\n" ,sizeof (struct acpi_object_notify_handler )); -acpi_os_printf ("AddressSpace %3d\n" , +acpi_os_printf ("AddressSpace %3lu\n" ,sizeof (struct acpi_object_addr_handler )); -acpi_os_printf ("Extra %3d\n" , +acpi_os_printf ("Extra %3lu\n" ,sizeof (struct acpi_object_extra )); -acpi_os_printf ("Data %3d\n" , +acpi_os_printf ("Data %3lu\n" ,sizeof (struct acpi_object_data ));acpi_os_printf ("\n" ); -acpi_os_printf ("ParseObject %3d\n" , +acpi_os_printf ("ParseObject %3lu\n" ,sizeof (struct acpi_parse_obj_common )); -acpi_os_printf ("ParseObjectNamed %3d\n" , +acpi_os_printf ("ParseObjectNamed %3lu\n" ,sizeof (struct acpi_parse_obj_named )); -acpi_os_printf ("ParseObjectAsl %3d\n" , +acpi_os_printf ("ParseObjectAsl %3lu\n" ,sizeof (struct acpi_parse_obj_asl )); -acpi_os_printf ("OperandObject %3d\n" , +acpi_os_printf ("OperandObject %3lu\n" ,sizeof (union acpi_operand_object )); -acpi_os_printf ("NamespaceNode %3d\n" , +acpi_os_printf ("NamespaceNode %3lu\n" ,sizeof (struct acpi_namespace_node )); -acpi_os_printf ("AcpiObject %3d\n" , +acpi_os_printf ("AcpiObject %3lu\n" ,sizeof (union acpi_object ));acpi_os_printf ("\n" ); -acpi_os_printf ("Generic State %3d\n" , +acpi_os_printf ("Generic State %3lu\n" ,sizeof (union acpi_generic_state )); -acpi_os_printf ("Common State %3d\n" , +acpi_os_printf ("Common State %3lu\n" ,sizeof (struct acpi_common_state )); -acpi_os_printf ("Control State %3d\n" , +acpi_os_printf ("Control State %3lu\n" ,sizeof (struct acpi_control_state )); -acpi_os_printf ("Update State %3d\n" , +acpi_os_printf ("Update State %3lu\n" ,sizeof (struct acpi_update_state )); -acpi_os_printf ("Scope State %3d\n" , +acpi_os_printf ("Scope State %3lu\n" ,sizeof (struct acpi_scope_state )); -acpi_os_printf ("Parse Scope %3d\n" , +acpi_os_printf ("Parse Scope %3lu\n" ,sizeof (struct acpi_pscope_state )); -acpi_os_printf ("Package State %3d\n" , +acpi_os_printf ("Package State %3lu\n" ,sizeof (struct acpi_pkg_state )); -acpi_os_printf ("Thread State %3d\n" , +acpi_os_printf ("Thread State %3lu\n" ,sizeof (struct acpi_thread_state )); -acpi_os_printf ("Result Values %3d\n" , +acpi_os_printf ("Result Values %3lu\n" ,sizeof (struct acpi_result_values )); -acpi_os_printf ("Notify Info %3d\n" , +acpi_os_printf ("Notify Info %3lu\n" ,sizeof (struct acpi_notify_info ));break ;drivers/acpi/acpica/utdebug.c +0
-0
drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 195
Quoted 8 lines
drivers/acpi/acpica/utdebug.c +1
-1@@ -189,7 +189,7 @@ acpi_debug_print(u32 requested_debug_level,* Display the module name, current line number, thread ID (if requested), * current procedure nesting level, and the current procedure name */ -acpi_os_printf ("%9s-%04ld " , module_name, line_number); +acpi_os_printf ("%9s-%04u " , module_name, line_number);#ifdef ACPI_APPLICATION /*
Please split above changes into a separate patch.
I'm not sure if the changes can break other compilers.
Please clone https://github.com/acpica/acpica, and submit a pull request there to have more ACPICA reviewers.
Quoted 8 lines
include/acpi/acpiosxf.h +0
-0@@ -337,11 +337,12 @@ acpi_status acpi_os_signal(u32 function, void *info);* Debug print routines */ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printf
include/acpi/acpiosxf.h acpi_status acpi_os_signal(u32 function, void *info); · line 348
Quoted 10 lines
include/acpi/acpiosxf.h +2
-1+__printf(1, 2) void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintf -void acpi_os_vprintf (const char *format,va_list args); +__printf(1, 0) void acpi_os_vprintf(const char *format, va_list args);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_output
You can use ACPI_PRINTF_LIKE macro instead.
This can directly go into Linux upstream.
You can prepare a different pull request for ACPICA upstream or I can help to back port the change.
Thanks
Lv
Quoted 7 lines
--
2.7.4--
Kees Cook
Nexus Security
Hi, Kees and Emese
I just helped to back port the commit here:
https://github.com/acpica/acpica/pull/196/commits/5e64857f
If you can see something wrong in it, please let me know.
Thanks and best regards
Lv
Quoted 308 lines
From: Devel [mailto:devel-bounces(a)acpica.org] On Behalf Of Zheng, Lv
Subject: Re: [Devel] [PATCH] acpi: Fix format string type mistakesHi,
Quoted 251 lines
From: Kees Cook [mailto:keescook(a)chromium.org]
Subject: [PATCH] acpi: Fix format string type mistakesFrom: Emese Revfy <re.emese(a)gmail.com>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by the attribute.Signed-off-by Emese Revfy <re.emese(a)gmail.com>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <keescook(a)chromium.org>--- drivers/acpi/acpica/dbhistry.c | 2 +- drivers/acpi/acpica/dbinput.c | 10 ++--- drivers/acpi/acpica/dbstats.c | 88 +++++++++++++++++++++--------------------- drivers/acpi/acpica/utdebug.c | 2 +- include/acpi/acpiosxf.h | 3 +- 5 files changed, 53 insertions(+), 52 deletions(-)drivers/acpi/acpica/dbhistry.c +1
-1@@ -155,7 +155,7 @@ void acpi_db_display_history(void)for (i =0 ; i < acpi_gbl_num_history; i++) {if (acpi_gbl_history_buffer[history_index].command) { - acpi_os_printf("%3ld %s\n", + acpi_os_printf("%3u %s\n", acpi_gbl_history_buffer[history_index]. cmd_num, acpi_gbl_history_buffer[history_index].drivers/acpi/acpica/dbinput.c +5
-5@@ -608,7 +608,7 @@ static u32 acpi_db_get_line(char *input_buffer) (acpi_gbl_db_parsed_buf, sizeof(acpi_gbl_db_parsed_buf), input_buffer)) {acpi_os_printf - ("Buffer overflow while parsing input line (max %u characters)\n" , + ("Buffer overflow while parsing input line (max %lu characters)\n" ,sizeof (acpi_gbl_db_parsed_buf));return (0 ); }@@ -864,24 +864,24 @@ acpi_db_command_dispatch(char *input_buffer,if (param_count ==0 ) {acpi_os_printf - ("Current debug level for file output is: %8.8lX\n" , + ("Current debug level for file output is: %8.8X\n" , acpi_gbl_db_debug_level);acpi_os_printf - ("Current debug level for console output is: %8.8lX\n" , + ("Current debug level for console output is: %8.8X\n" , acpi_gbl_db_console_debug_level); }else if (param_count ==2 ) { temp = acpi_gbl_db_console_debug_level; acpi_gbl_db_console_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 );acpi_os_printf - ("Debug Level for console output was %8.8lX, now %8.8lX\n" , + ("Debug Level for console output was %8.8X, now %8.8X\n" , temp, acpi_gbl_db_console_debug_level); }else { temp = acpi_gbl_db_debug_level; acpi_gbl_db_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 );acpi_os_printf - ("Debug Level for file output was %8.8lX, now %8.8lX\n" , + ("Debug Level for file output was %8.8X, now %8.8X\n" , temp, acpi_gbl_db_debug_level); }break ;drivers/acpi/acpica/dbstats.c +44
-44@@ -377,17 +377,17 @@ acpi_status acpi_db_display_statistics(char *type_arg) "ACPI_TYPE", "NODES", "OBJECTS");for (i =0 ; i <ACPI_TYPE_NS_NODE_MAX ; i++) { -acpi_os_printf ("%16.16s % 10ld% 10ld\n" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,acpi_ut_get_type_name (i), acpi_gbl_node_type_count[i], acpi_gbl_obj_type_count[i]); } -acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"Misc/Unknown" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"Misc/Unknown" , acpi_gbl_node_type_count_misc, acpi_gbl_obj_type_count_misc); -acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"TOTALS:" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"TOTALS:" , acpi_gbl_num_nodes, acpi_gbl_num_objects);break ;@@ -415,16 +415,16 @@ acpi_status acpi_db_display_statistics(char *type_arg)case CMD_STAT_MISC :acpi_os_printf ("\nMiscellaneous Statistics:\n\n" ); -acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7ld\n" , +acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7u\n" , acpi_gbl_ps_find_count); -acpi_os_printf ("Calls to AcpiNsLookup:..........% 7ld\n" , +acpi_os_printf ("Calls to AcpiNsLookup:..........% 7u\n" , acpi_gbl_ns_lookup_count);acpi_os_printf ("\n" );acpi_os_printf ("Mutex usage:\n\n" );for (i =0 ; i <ACPI_NUM_MUTEX ; i++) { -acpi_os_printf ("%-28s: % 7ld\n" , +acpi_os_printf ("%-28s: % 7u\n" ,acpi_ut_get_mutex_name (i), acpi_gbl_mutex_info[i].use_count); }@@ -434,87 +434,87 @@ acpi_status acpi_db_display_statistics(char *type_arg)acpi_os_printf ("\nInternal object sizes:\n\n" ); -acpi_os_printf ("Common %3d\n" , +acpi_os_printf ("Common %3lu\n" ,sizeof (struct acpi_object_common )); -acpi_os_printf ("Number %3d\n" , +acpi_os_printf ("Number %3lu\n" ,sizeof (struct acpi_object_integer )); -acpi_os_printf ("String %3d\n" , +acpi_os_printf ("String %3lu\n" ,sizeof (struct acpi_object_string )); -acpi_os_printf ("Buffer %3d\n" , +acpi_os_printf ("Buffer %3lu\n" ,sizeof (struct acpi_object_buffer )); -acpi_os_printf ("Package %3d\n" , +acpi_os_printf ("Package %3lu\n" ,sizeof (struct acpi_object_package )); -acpi_os_printf ("BufferField %3d\n" , +acpi_os_printf ("BufferField %3lu\n" ,sizeof (struct acpi_object_buffer_field )); -acpi_os_printf ("Device %3d\n" , +acpi_os_printf ("Device %3lu\n" ,sizeof (struct acpi_object_device )); -acpi_os_printf ("Event %3d\n" , +acpi_os_printf ("Event %3lu\n" ,sizeof (struct acpi_object_event )); -acpi_os_printf ("Method %3d\n" , +acpi_os_printf ("Method %3lu\n" ,sizeof (struct acpi_object_method )); -acpi_os_printf ("Mutex %3d\n" , +acpi_os_printf ("Mutex %3lu\n" ,sizeof (struct acpi_object_mutex )); -acpi_os_printf ("Region %3d\n" , +acpi_os_printf ("Region %3lu\n" ,sizeof (struct acpi_object_region )); -acpi_os_printf ("PowerResource %3d\n" , +acpi_os_printf ("PowerResource %3lu\n" ,sizeof (struct acpi_object_power_resource )); -acpi_os_printf ("Processor %3d\n" , +acpi_os_printf ("Processor %3lu\n" ,sizeof (struct acpi_object_processor )); -acpi_os_printf ("ThermalZone %3d\n" , +acpi_os_printf ("ThermalZone %3lu\n" ,sizeof (struct acpi_object_thermal_zone )); -acpi_os_printf ("RegionField %3d\n" , +acpi_os_printf ("RegionField %3lu\n" ,sizeof (struct acpi_object_region_field )); -acpi_os_printf ("BankField %3d\n" , +acpi_os_printf ("BankField %3lu\n" ,sizeof (struct acpi_object_bank_field )); -acpi_os_printf ("IndexField %3d\n" , +acpi_os_printf ("IndexField %3lu\n" ,sizeof (struct acpi_object_index_field )); -acpi_os_printf ("Reference %3d\n" , +acpi_os_printf ("Reference %3lu\n" ,sizeof (struct acpi_object_reference )); -acpi_os_printf ("Notify %3d\n" , +acpi_os_printf ("Notify %3lu\n" ,sizeof (struct acpi_object_notify_handler )); -acpi_os_printf ("AddressSpace %3d\n" , +acpi_os_printf ("AddressSpace %3lu\n" ,sizeof (struct acpi_object_addr_handler )); -acpi_os_printf ("Extra %3d\n" , +acpi_os_printf ("Extra %3lu\n" ,sizeof (struct acpi_object_extra )); -acpi_os_printf ("Data %3d\n" , +acpi_os_printf ("Data %3lu\n" ,sizeof (struct acpi_object_data ));acpi_os_printf ("\n" ); -acpi_os_printf ("ParseObject %3d\n" , +acpi_os_printf ("ParseObject %3lu\n" ,sizeof (struct acpi_parse_obj_common )); -acpi_os_printf ("ParseObjectNamed %3d\n" , +acpi_os_printf ("ParseObjectNamed %3lu\n" ,sizeof (struct acpi_parse_obj_named )); -acpi_os_printf ("ParseObjectAsl %3d\n" , +acpi_os_printf ("ParseObjectAsl %3lu\n" ,sizeof (struct acpi_parse_obj_asl )); -acpi_os_printf ("OperandObject %3d\n" , +acpi_os_printf ("OperandObject %3lu\n" ,sizeof (union acpi_operand_object )); -acpi_os_printf ("NamespaceNode %3d\n" , +acpi_os_printf ("NamespaceNode %3lu\n" ,sizeof (struct acpi_namespace_node )); -acpi_os_printf ("AcpiObject %3d\n" , +acpi_os_printf ("AcpiObject %3lu\n" ,sizeof (union acpi_object ));acpi_os_printf ("\n" ); -acpi_os_printf ("Generic State %3d\n" , +acpi_os_printf ("Generic State %3lu\n" ,sizeof (union acpi_generic_state )); -acpi_os_printf ("Common State %3d\n" , +acpi_os_printf ("Common State %3lu\n" ,sizeof (struct acpi_common_state )); -acpi_os_printf ("Control State %3d\n" , +acpi_os_printf ("Control State %3lu\n" ,sizeof (struct acpi_control_state )); -acpi_os_printf ("Update State %3d\n" , +acpi_os_printf ("Update State %3lu\n" ,sizeof (struct acpi_update_state )); -acpi_os_printf ("Scope State %3d\n" , +acpi_os_printf ("Scope State %3lu\n" ,sizeof (struct acpi_scope_state )); -acpi_os_printf ("Parse Scope %3d\n" , +acpi_os_printf ("Parse Scope %3lu\n" ,sizeof (struct acpi_pscope_state )); -acpi_os_printf ("Package State %3d\n" , +acpi_os_printf ("Package State %3lu\n" ,sizeof (struct acpi_pkg_state )); -acpi_os_printf ("Thread State %3d\n" , +acpi_os_printf ("Thread State %3lu\n" ,sizeof (struct acpi_thread_state )); -acpi_os_printf ("Result Values %3d\n" , +acpi_os_printf ("Result Values %3lu\n" ,sizeof (struct acpi_result_values )); -acpi_os_printf ("Notify Info %3d\n" , +acpi_os_printf ("Notify Info %3lu\n" ,sizeof (struct acpi_notify_info ));break ;drivers/acpi/acpica/utdebug.c +0
-0drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 195
Quoted 8 lines
drivers/acpi/acpica/utdebug.c +1
-1@@ -189,7 +189,7 @@ acpi_debug_print(u32 requested_debug_level,* Display the module name, current line number, thread ID (if requested), * current procedure nesting level, and the current procedure name */ -acpi_os_printf ("%9s-%04ld " , module_name, line_number); +acpi_os_printf ("%9s-%04u " , module_name, line_number);#ifdef ACPI_APPLICATION /* Please split above changes into a separate patch.
I'm not sure if the changes can break other compilers.
Please clone https://github.com/acpica/acpica, and submit a pull request there to have more ACPICA reviewers.Quoted 8 lines
include/acpi/acpiosxf.h +0
-0@@ -337,11 +337,12 @@ acpi_status acpi_os_signal(u32 function, void *info);* Debug print routines */ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printfinclude/acpi/acpiosxf.h acpi_status acpi_os_signal(u32 function, void *info); · line 348
Quoted 10 lines
include/acpi/acpiosxf.h +2
-1+__printf(1, 2) void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintf -void acpi_os_vprintf (const char *format,va_list args); +__printf(1, 0) void acpi_os_vprintf(const char *format, va_list args);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_outputYou can use
ACPI_PRINTF_LIKEmacro instead.
This can directly go into Linux upstream.
You can prepare a different pull request for ACPICA upstream or I can help to back port the change.Thanks
LvQuoted 7 lines
--
2.7.4--
Kees Cook
Nexus Security_______________________________________________
Devel mailing list
Devel(a)acpica.org
https://lists.acpica.org/mailman/listinfo/devel
Hi, Kees and Emese
The pull request is under rebasing.
So if you cannot reach the URL, find the commit here:
https://github.com/acpica/acpica/pull/196
Thanks and best regards
Lv
Quoted 320 lines
From: Zheng, Lv
Subject: RE: [PATCH] acpi: Fix format string type mistakesHi, Kees and Emese
I just helped to back port the commit here:
https://github.com/acpica/acpica/pull/196/commits/5e64857f
If you can see something wrong in it, please let me know.Thanks and best regards
LvQuoted 308 lines
From: Devel [mailto:devel-bounces(a)acpica.org] On Behalf Of Zheng, Lv
Subject: Re: [Devel] [PATCH] acpi: Fix format string type mistakesHi,
Quoted 251 lines
From: Kees Cook [mailto:keescook(a)chromium.org]
Subject: [PATCH] acpi: Fix format string type mistakesFrom: Emese Revfy <re.emese(a)gmail.com>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by the attribute.Signed-off-by Emese Revfy <re.emese(a)gmail.com>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <keescook(a)chromium.org>--- drivers/acpi/acpica/dbhistry.c | 2 +- drivers/acpi/acpica/dbinput.c | 10 ++--- drivers/acpi/acpica/dbstats.c | 88 +++++++++++++++++++++--------------------- drivers/acpi/acpica/utdebug.c | 2 +- include/acpi/acpiosxf.h | 3 +- 5 files changed, 53 insertions(+), 52 deletions(-)drivers/acpi/acpica/dbhistry.c +1
-1@@ -155,7 +155,7 @@ void acpi_db_display_history(void)for (i =0 ; i < acpi_gbl_num_history; i++) {if (acpi_gbl_history_buffer[history_index].command) { - acpi_os_printf("%3ld %s\n", + acpi_os_printf("%3u %s\n", acpi_gbl_history_buffer[history_index]. cmd_num, acpi_gbl_history_buffer[history_index].drivers/acpi/acpica/dbinput.c +5
-5@@ -608,7 +608,7 @@ static u32 acpi_db_get_line(char *input_buffer) (acpi_gbl_db_parsed_buf, sizeof(acpi_gbl_db_parsed_buf), input_buffer)) {acpi_os_printf - ("Buffer overflow while parsing input line (max %u characters)\n" , + ("Buffer overflow while parsing input line (max %lu characters)\n" ,sizeof (acpi_gbl_db_parsed_buf));return (0 ); }@@ -864,24 +864,24 @@ acpi_db_command_dispatch(char *input_buffer,if (param_count ==0 ) {acpi_os_printf - ("Current debug level for file output is: %8.8lX\n" , + ("Current debug level for file output is: %8.8X\n" , acpi_gbl_db_debug_level);acpi_os_printf - ("Current debug level for console output is: %8.8lX\n" , + ("Current debug level for console output is: %8.8X\n" , acpi_gbl_db_console_debug_level); }else if (param_count ==2 ) { temp = acpi_gbl_db_console_debug_level; acpi_gbl_db_console_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 );acpi_os_printf - ("Debug Level for console output was %8.8lX, now %8.8lX\n" , + ("Debug Level for console output was %8.8X, now %8.8X\n" , temp, acpi_gbl_db_console_debug_level); }else { temp = acpi_gbl_db_debug_level; acpi_gbl_db_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 );acpi_os_printf - ("Debug Level for file output was %8.8lX, now %8.8lX\n" , + ("Debug Level for file output was %8.8X, now %8.8X\n" , temp, acpi_gbl_db_debug_level); }break ;drivers/acpi/acpica/dbstats.c +44
-44@@ -377,17 +377,17 @@ acpi_status acpi_db_display_statistics(char *type_arg) "ACPI_TYPE", "NODES", "OBJECTS");for (i =0 ; i <ACPI_TYPE_NS_NODE_MAX ; i++) { -acpi_os_printf ("%16.16s % 10ld% 10ld\n" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,acpi_ut_get_type_name (i), acpi_gbl_node_type_count[i], acpi_gbl_obj_type_count[i]); } -acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"Misc/Unknown" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"Misc/Unknown" , acpi_gbl_node_type_count_misc, acpi_gbl_obj_type_count_misc); -acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"TOTALS:" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"TOTALS:" , acpi_gbl_num_nodes, acpi_gbl_num_objects);break ;@@ -415,16 +415,16 @@ acpi_status acpi_db_display_statistics(char *type_arg)case CMD_STAT_MISC :acpi_os_printf ("\nMiscellaneous Statistics:\n\n" ); -acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7ld\n" , +acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7u\n" , acpi_gbl_ps_find_count); -acpi_os_printf ("Calls to AcpiNsLookup:..........% 7ld\n" , +acpi_os_printf ("Calls to AcpiNsLookup:..........% 7u\n" , acpi_gbl_ns_lookup_count);acpi_os_printf ("\n" );acpi_os_printf ("Mutex usage:\n\n" );for (i =0 ; i <ACPI_NUM_MUTEX ; i++) { -acpi_os_printf ("%-28s: % 7ld\n" , +acpi_os_printf ("%-28s: % 7u\n" ,acpi_ut_get_mutex_name (i), acpi_gbl_mutex_info[i].use_count); }@@ -434,87 +434,87 @@ acpi_status acpi_db_display_statistics(char *type_arg)acpi_os_printf ("\nInternal object sizes:\n\n" ); -acpi_os_printf ("Common %3d\n" , +acpi_os_printf ("Common %3lu\n" ,sizeof (struct acpi_object_common )); -acpi_os_printf ("Number %3d\n" , +acpi_os_printf ("Number %3lu\n" ,sizeof (struct acpi_object_integer )); -acpi_os_printf ("String %3d\n" , +acpi_os_printf ("String %3lu\n" ,sizeof (struct acpi_object_string )); -acpi_os_printf ("Buffer %3d\n" , +acpi_os_printf ("Buffer %3lu\n" ,sizeof (struct acpi_object_buffer )); -acpi_os_printf ("Package %3d\n" , +acpi_os_printf ("Package %3lu\n" ,sizeof (struct acpi_object_package )); -acpi_os_printf ("BufferField %3d\n" , +acpi_os_printf ("BufferField %3lu\n" ,sizeof (struct acpi_object_buffer_field )); -acpi_os_printf ("Device %3d\n" , +acpi_os_printf ("Device %3lu\n" ,sizeof (struct acpi_object_device )); -acpi_os_printf ("Event %3d\n" , +acpi_os_printf ("Event %3lu\n" ,sizeof (struct acpi_object_event )); -acpi_os_printf ("Method %3d\n" , +acpi_os_printf ("Method %3lu\n" ,sizeof (struct acpi_object_method )); -acpi_os_printf ("Mutex %3d\n" , +acpi_os_printf ("Mutex %3lu\n" ,sizeof (struct acpi_object_mutex )); -acpi_os_printf ("Region %3d\n" , +acpi_os_printf ("Region %3lu\n" ,sizeof (struct acpi_object_region )); -acpi_os_printf ("PowerResource %3d\n" , +acpi_os_printf ("PowerResource %3lu\n" ,sizeof (struct acpi_object_power_resource )); -acpi_os_printf ("Processor %3d\n" , +acpi_os_printf ("Processor %3lu\n" ,sizeof (struct acpi_object_processor )); -acpi_os_printf ("ThermalZone %3d\n" , +acpi_os_printf ("ThermalZone %3lu\n" ,sizeof (struct acpi_object_thermal_zone )); -acpi_os_printf ("RegionField %3d\n" , +acpi_os_printf ("RegionField %3lu\n" ,sizeof (struct acpi_object_region_field )); -acpi_os_printf ("BankField %3d\n" , +acpi_os_printf ("BankField %3lu\n" ,sizeof (struct acpi_object_bank_field )); -acpi_os_printf ("IndexField %3d\n" , +acpi_os_printf ("IndexField %3lu\n" ,sizeof (struct acpi_object_index_field )); -acpi_os_printf ("Reference %3d\n" , +acpi_os_printf ("Reference %3lu\n" ,sizeof (struct acpi_object_reference )); -acpi_os_printf ("Notify %3d\n" , +acpi_os_printf ("Notify %3lu\n" ,sizeof (struct acpi_object_notify_handler )); -acpi_os_printf ("AddressSpace %3d\n" , +acpi_os_printf ("AddressSpace %3lu\n" ,sizeof (struct acpi_object_addr_handler )); -acpi_os_printf ("Extra %3d\n" , +acpi_os_printf ("Extra %3lu\n" ,sizeof (struct acpi_object_extra )); -acpi_os_printf ("Data %3d\n" , +acpi_os_printf ("Data %3lu\n" ,sizeof (struct acpi_object_data ));acpi_os_printf ("\n" ); -acpi_os_printf ("ParseObject %3d\n" , +acpi_os_printf ("ParseObject %3lu\n" ,sizeof (struct acpi_parse_obj_common )); -acpi_os_printf ("ParseObjectNamed %3d\n" , +acpi_os_printf ("ParseObjectNamed %3lu\n" ,sizeof (struct acpi_parse_obj_named )); -acpi_os_printf ("ParseObjectAsl %3d\n" , +acpi_os_printf ("ParseObjectAsl %3lu\n" ,sizeof (struct acpi_parse_obj_asl )); -acpi_os_printf ("OperandObject %3d\n" , +acpi_os_printf ("OperandObject %3lu\n" ,sizeof (union acpi_operand_object )); -acpi_os_printf ("NamespaceNode %3d\n" , +acpi_os_printf ("NamespaceNode %3lu\n" ,sizeof (struct acpi_namespace_node )); -acpi_os_printf ("AcpiObject %3d\n" , +acpi_os_printf ("AcpiObject %3lu\n" ,sizeof (union acpi_object ));acpi_os_printf ("\n" ); -acpi_os_printf ("Generic State %3d\n" , +acpi_os_printf ("Generic State %3lu\n" ,sizeof (union acpi_generic_state )); -acpi_os_printf ("Common State %3d\n" , +acpi_os_printf ("Common State %3lu\n" ,sizeof (struct acpi_common_state )); -acpi_os_printf ("Control State %3d\n" , +acpi_os_printf ("Control State %3lu\n" ,sizeof (struct acpi_control_state )); -acpi_os_printf ("Update State %3d\n" , +acpi_os_printf ("Update State %3lu\n" ,sizeof (struct acpi_update_state )); -acpi_os_printf ("Scope State %3d\n" , +acpi_os_printf ("Scope State %3lu\n" ,sizeof (struct acpi_scope_state )); -acpi_os_printf ("Parse Scope %3d\n" , +acpi_os_printf ("Parse Scope %3lu\n" ,sizeof (struct acpi_pscope_state )); -acpi_os_printf ("Package State %3d\n" , +acpi_os_printf ("Package State %3lu\n" ,sizeof (struct acpi_pkg_state )); -acpi_os_printf ("Thread State %3d\n" , +acpi_os_printf ("Thread State %3lu\n" ,sizeof (struct acpi_thread_state )); -acpi_os_printf ("Result Values %3d\n" , +acpi_os_printf ("Result Values %3lu\n" ,sizeof (struct acpi_result_values )); -acpi_os_printf ("Notify Info %3d\n" , +acpi_os_printf ("Notify Info %3lu\n" ,sizeof (struct acpi_notify_info ));break ;drivers/acpi/acpica/utdebug.c +0
-0drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 195
Quoted 8 lines
drivers/acpi/acpica/utdebug.c +1
-1@@ -189,7 +189,7 @@ acpi_debug_print(u32 requested_debug_level,* Display the module name, current line number, thread ID (if requested), * current procedure nesting level, and the current procedure name */ -acpi_os_printf ("%9s-%04ld " , module_name, line_number); +acpi_os_printf ("%9s-%04u " , module_name, line_number);#ifdef ACPI_APPLICATION /* Please split above changes into a separate patch.
I'm not sure if the changes can break other compilers.
Please clone https://github.com/acpica/acpica, and submit a pull request there to have more ACPICA reviewers.Quoted 8 lines
include/acpi/acpiosxf.h +0
-0@@ -337,11 +337,12 @@ acpi_status acpi_os_signal(u32 function, void *info);* Debug print routines */ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printfinclude/acpi/acpiosxf.h acpi_status acpi_os_signal(u32 function, void *info); · line 348
Quoted 10 lines
include/acpi/acpiosxf.h +2
-1+__printf(1, 2) void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintf -void acpi_os_vprintf (const char *format,va_list args); +__printf(1, 0) void acpi_os_vprintf(const char *format, va_list args);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_outputYou can use
ACPI_PRINTF_LIKEmacro instead.
This can directly go into Linux upstream.
You can prepare a different pull request for ACPICA upstream or I can help to back port the change.Thanks
LvQuoted 7 lines
--
2.7.4--
Kees Cook
Nexus Security_______________________________________________
Devel mailing list
Devel(a)acpica.org
https://lists.acpica.org/mailman/listinfo/devel
These formatting changes will not compile under:
Gcc 4.4.5
Gcc 5.4.0
The printf formatting stuff is very delicate, as ACPICA has to be compiled under many different compilers.
Bob
Quoted 366 lines
-----Original Message-----
From: Zheng, Lv
Sent: Wednesday, December 21, 2016 12:07 AM
To: Kees Cook <keescook(a)chromium.org>; Moore, Robert <robert.moore(a)intel.com>
Cc: Wysocki, Rafael J <rafael.j.wysocki(a)intel.com>; linux- kernel(a)vger.kernel.org; linux-acpi(a)vger.kernel.org; Emese Revfy <re.emese(a)gmail.com>; devel(a)acpica.org
Subject: RE: [PATCH] acpi: Fix format string type mistakesHi, Kees and Emese
The pull request is under rebasing.
So if you cannot reach the URL, find the commit here:
https://github.com/acpica/acpica/pull/196Thanks and best regards
LvQuoted 25 lines
From: Zheng, Lv
Subject: RE: [PATCH] acpi: Fix format string type mistakesHi, Kees and Emese
I just helped to back port the commit here:
https://github.com/acpica/acpica/pull/196/commits/5e64857f
If you can see something wrong in it, please let me know.Thanks and best regards
LvQuoted 13 lines
From: Devel [mailto:devel-bounces(a)acpica.org] On Behalf Of Zheng, Lv
Subject: Re: [Devel] [PATCH] acpi: Fix format string type mistakesHi,
Quoted 8 lines
From: Kees Cook [mailto:keescook(a)chromium.org]
Subject: [PATCH] acpi: Fix format string type mistakesFrom: Emese Revfy <re.emese(a)gmail.com>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by theattribute.
Quoted 20 lines
Quoted 20 lines
Quoted 20 lines
Signed-off-by Emese Revfy <re.emese(a)gmail.com>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <keescook(a)chromium.org>--- drivers/acpi/acpica/dbhistry.c | 2 +- drivers/acpi/acpica/dbinput.c | 10 ++--- drivers/acpi/acpica/dbstats.c | 88 +++++++++++++++++++++--------------------- drivers/acpi/acpica/utdebug.c | 2 +- include/acpi/acpiosxf.h | 3 +- 5 files changed, 53 insertions(+), 52 deletions(-)(quoted diff) +0
-0
b/drivers/acpi/acpica/dbhistry.cindex46bd65d38df9..ec9da4830f6a100644drivers/acpi/acpica/dbhistry.c +0
-0@@ -155,7 +155,7 @@ void acpi_db_display_history(void)Quoted 5 lines
Quoted 5 lines
drivers/acpi/acpica/dbhistry.c void acpi_db_display_history(void)
Quoted 5 lines
drivers/acpi/acpica/dbhistry.c +1
-1for (i =0 ; i < acpi_gbl_num_history; i++) {if (acpi_gbl_history_buffer[history_index].command) { - acpi_os_printf("%3ld %s\n", + acpi_os_printf("%3u %s\n",acpi_gbl_history_buffer[history_index].
Quoted 2 lines
Quoted 2 lines
drivers/acpi/acpica/dbhistry.c void acpi_db_display_history(void) · line 161
Quoted 2 lines
drivers/acpi/acpica/dbhistry.c +0
-0cmd_num,acpi_gbl_history_buffer[history_index].
Quoted 6 lines
Quoted 6 lines
drivers/acpi/acpica/dbinput.c static u32 acpi_db_get_line(char
Quoted 6 lines
(quoted diff) +0
-0
b/drivers/acpi/acpica/dbinput.cindex068214f9cc9d..43be06bdb790100644drivers/acpi/acpica/dbinput.c +0
-0@@ -608,7 +608,7 @@ static u32 acpi_db_get_line(char
*input_buffer)Quoted 4 lines
Quoted 4 lines
drivers/acpi/acpica/dbinput.c static u32 acpi_db_get_line(char *input_buffer)
Quoted 4 lines
drivers/acpi/acpica/dbinput.c +0
-1(acpi_gbl_db_parsed_buf, sizeof(acpi_gbl_db_parsed_buf), input_buffer)) { acpi_os_printf - ("Buffer overflow while parsing input line (max %ucharacters)\n",
Quoted 10 lines
Quoted 10 lines
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 867
Quoted 10 lines
drivers/acpi/acpica/dbinput.c +2
-1+ ("Buffer overflow while parsing input line (max %lu +characters)\n", sizeof(acpi_gbl_db_parsed_buf));return (0 ); }@@ -864,24 +864,24 @@ acpi_db_command_dispatch(char *input_buffer,if (param_count ==0 ) { acpi_os_printf - ("Current debug level for file output is:%8.8lX\n",
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 867
Quoted 1 line
drivers/acpi/acpica/dbinput.c +1
-0+ ("Current debug level for file output is:%8.8X\n",
Quoted 3 lines
Quoted 3 lines
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer,
Quoted 3 lines
drivers/acpi/acpica/dbinput.c +0
-1acpi_gbl_db_debug_level); acpi_os_printf - ("Current debug level for console output is:%8.8lX\n",
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 870
Quoted 1 line
drivers/acpi/acpica/dbinput.c +1
-0+ ("Current debug level for console output is:%8.8X\n",
Quoted 7 lines
Quoted 7 lines
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer,
Quoted 7 lines
drivers/acpi/acpica/dbinput.c +0
-1acpi_gbl_db_console_debug_level); }else if (param_count ==2 ) { temp = acpi_gbl_db_console_debug_level; acpi_gbl_db_console_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 ); acpi_os_printf - ("Debug Level for console output was %8.8lX,now %8.8lX\n",
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 877
Quoted 1 line
drivers/acpi/acpica/dbinput.c +1
-0+ ("Debug Level for console output was %8.8X, now%8.8X\n",
Quoted 7 lines
Quoted 7 lines
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer,
Quoted 7 lines
drivers/acpi/acpica/dbinput.c +0
-1temp, acpi_gbl_db_console_debug_level); }else { temp = acpi_gbl_db_debug_level; acpi_gbl_db_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 ); acpi_os_printf - ("Debug Level for file output was %8.8lX, now%8.8lX\n",
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 884
Quoted 1 line
drivers/acpi/acpica/dbinput.c +1
-0+ ("Debug Level for file output was %8.8X, now%8.8X\n",
Quoted 9 lines
Quoted 9 lines
drivers/acpi/acpica/dbstats.c acpi_status acpi_db_display_statistics(char
Quoted 9 lines
drivers/acpi/acpica/dbinput.c +0
-0temp, acpi_gbl_db_debug_level); }break ;(quoted diff) +0
-0
b/drivers/acpi/acpica/dbstats.cindexa414e1fa6f9d..de7023024b12100644drivers/acpi/acpica/dbstats.c +0
-0@@ -377,17 +377,17 @@ acpi_status acpi_db_display_statistics(char
*type_arg)Quoted 15 lines
Quoted 15 lines
Quoted 15 lines
drivers/acpi/acpica/dbstats.c +2
-2"ACPI_TYPE", "NODES", "OBJECTS");for (i =0 ; i <ACPI_TYPE_NS_NODE_MAX ; i++) { -acpi_os_printf ("%16.16s % 10ld% 10ld\n" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,acpi_ut_get_type_name (i), acpi_gbl_node_type_count[i], acpi_gbl_obj_type_count[i]); } -acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"Misc/Unknown" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"Misc/Unknown" , acpi_gbl_node_type_count_misc, acpi_gbl_obj_type_count_misc);Quoted 6 lines
Quoted 6 lines
drivers/acpi/acpica/dbstats.c acpi_status acpi_db_display_statistics(char
Quoted 6 lines
drivers/acpi/acpica/dbstats.c +1
-1-acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"TOTALS:" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"TOTALS:" , acpi_gbl_num_nodes, acpi_gbl_num_objects);break ;@@ -415,16 +415,16 @@ acpi_status acpi_db_display_statistics(char
*type_arg)Quoted 7 lines
Quoted 7 lines
drivers/acpi/acpica/dbstats.c acpi_status acpi_db_display_statistics(char *type_arg)
Quoted 7 lines
drivers/acpi/acpica/dbstats.c +1
-2case CMD_STAT_MISC :acpi_os_printf ("\nMiscellaneous Statistics:\n\n" ); -acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7ld\n" , +acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7u\n" , acpi_gbl_ps_find_count); - acpi_os_printf("Calls to AcpiNsLookup:..........%7ld\n",
Quoted 139 lines
Quoted 139 lines
Quoted 139 lines
drivers/acpi/acpica/dbstats.c +40
-39+acpi_os_printf ("Calls to AcpiNsLookup:..........% 7u\n" , acpi_gbl_ns_lookup_count);acpi_os_printf ("\n" );acpi_os_printf ("Mutex usage:\n\n" );for (i =0 ; i <ACPI_NUM_MUTEX ; i++) { -acpi_os_printf ("%-28s: % 7ld\n" , +acpi_os_printf ("%-28s: % 7u\n" ,acpi_ut_get_mutex_name (i), acpi_gbl_mutex_info[i].use_count); }@@ -434,87 +434,87 @@ acpi_status acpi_db_display_statistics(char *type_arg)acpi_os_printf ("\nInternal object sizes:\n\n" ); -acpi_os_printf ("Common %3d\n" , +acpi_os_printf ("Common %3lu\n" ,sizeof (struct acpi_object_common )); -acpi_os_printf ("Number %3d\n" , +acpi_os_printf ("Number %3lu\n" ,sizeof (struct acpi_object_integer )); -acpi_os_printf ("String %3d\n" , +acpi_os_printf ("String %3lu\n" ,sizeof (struct acpi_object_string )); -acpi_os_printf ("Buffer %3d\n" , +acpi_os_printf ("Buffer %3lu\n" ,sizeof (struct acpi_object_buffer )); -acpi_os_printf ("Package %3d\n" , +acpi_os_printf ("Package %3lu\n" ,sizeof (struct acpi_object_package )); -acpi_os_printf ("BufferField %3d\n" , +acpi_os_printf ("BufferField %3lu\n" ,sizeof (struct acpi_object_buffer_field )); -acpi_os_printf ("Device %3d\n" , +acpi_os_printf ("Device %3lu\n" ,sizeof (struct acpi_object_device )); -acpi_os_printf ("Event %3d\n" , +acpi_os_printf ("Event %3lu\n" ,sizeof (struct acpi_object_event )); -acpi_os_printf ("Method %3d\n" , +acpi_os_printf ("Method %3lu\n" ,sizeof (struct acpi_object_method )); -acpi_os_printf ("Mutex %3d\n" , +acpi_os_printf ("Mutex %3lu\n" ,sizeof (struct acpi_object_mutex )); -acpi_os_printf ("Region %3d\n" , +acpi_os_printf ("Region %3lu\n" ,sizeof (struct acpi_object_region )); -acpi_os_printf ("PowerResource %3d\n" , +acpi_os_printf ("PowerResource %3lu\n" ,sizeof (struct acpi_object_power_resource )); -acpi_os_printf ("Processor %3d\n" , +acpi_os_printf ("Processor %3lu\n" ,sizeof (struct acpi_object_processor )); -acpi_os_printf ("ThermalZone %3d\n" , +acpi_os_printf ("ThermalZone %3lu\n" ,sizeof (struct acpi_object_thermal_zone )); -acpi_os_printf ("RegionField %3d\n" , +acpi_os_printf ("RegionField %3lu\n" ,sizeof (struct acpi_object_region_field )); -acpi_os_printf ("BankField %3d\n" , +acpi_os_printf ("BankField %3lu\n" ,sizeof (struct acpi_object_bank_field )); -acpi_os_printf ("IndexField %3d\n" , +acpi_os_printf ("IndexField %3lu\n" ,sizeof (struct acpi_object_index_field )); -acpi_os_printf ("Reference %3d\n" , +acpi_os_printf ("Reference %3lu\n" ,sizeof (struct acpi_object_reference )); -acpi_os_printf ("Notify %3d\n" , +acpi_os_printf ("Notify %3lu\n" ,sizeof (struct acpi_object_notify_handler )); -acpi_os_printf ("AddressSpace %3d\n" , +acpi_os_printf ("AddressSpace %3lu\n" ,sizeof (struct acpi_object_addr_handler )); -acpi_os_printf ("Extra %3d\n" , +acpi_os_printf ("Extra %3lu\n" ,sizeof (struct acpi_object_extra )); -acpi_os_printf ("Data %3d\n" , +acpi_os_printf ("Data %3lu\n" ,sizeof (struct acpi_object_data ));acpi_os_printf ("\n" ); -acpi_os_printf ("ParseObject %3d\n" , +acpi_os_printf ("ParseObject %3lu\n" ,sizeof (struct acpi_parse_obj_common )); -acpi_os_printf ("ParseObjectNamed %3d\n" , +acpi_os_printf ("ParseObjectNamed %3lu\n" ,sizeof (struct acpi_parse_obj_named )); -acpi_os_printf ("ParseObjectAsl %3d\n" , +acpi_os_printf ("ParseObjectAsl %3lu\n" ,sizeof (struct acpi_parse_obj_asl )); -acpi_os_printf ("OperandObject %3d\n" , +acpi_os_printf ("OperandObject %3lu\n" ,sizeof (union acpi_operand_object )); -acpi_os_printf ("NamespaceNode %3d\n" , +acpi_os_printf ("NamespaceNode %3lu\n" ,sizeof (struct acpi_namespace_node )); -acpi_os_printf ("AcpiObject %3d\n" , +acpi_os_printf ("AcpiObject %3lu\n" ,sizeof (union acpi_object ));acpi_os_printf ("\n" ); -acpi_os_printf ("Generic State %3d\n" , +acpi_os_printf ("Generic State %3lu\n" ,sizeof (union acpi_generic_state )); -acpi_os_printf ("Common State %3d\n" , +acpi_os_printf ("Common State %3lu\n" ,sizeof (struct acpi_common_state )); -acpi_os_printf ("Control State %3d\n" , +acpi_os_printf ("Control State %3lu\n" ,sizeof (struct acpi_control_state )); -acpi_os_printf ("Update State %3d\n" , +acpi_os_printf ("Update State %3lu\n" ,sizeof (struct acpi_update_state )); -acpi_os_printf ("Scope State %3d\n" , +acpi_os_printf ("Scope State %3lu\n" ,sizeof (struct acpi_scope_state )); -acpi_os_printf ("Parse Scope %3d\n" , +acpi_os_printf ("Parse Scope %3lu\n" ,sizeof (struct acpi_pscope_state )); -acpi_os_printf ("Package State %3d\n" , +acpi_os_printf ("Package State %3lu\n" ,sizeof (struct acpi_pkg_state )); -acpi_os_printf ("Thread State %3d\n" , +acpi_os_printf ("Thread State %3lu\n" ,sizeof (struct acpi_thread_state )); -acpi_os_printf ("Result Values %3d\n" , +acpi_os_printf ("Result Values %3lu\n" ,sizeof (struct acpi_result_values )); -acpi_os_printf ("Notify Info %3d\n" , +acpi_os_printf ("Notify Info %3lu\n" ,sizeof (struct acpi_notify_info ));break ;Quoted 7 lines
Quoted 7 lines
drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 189
Quoted 7 lines
(quoted diff) +0
-0
b/drivers/acpi/acpica/utdebug.cindex044df9b0356e..b4cdb9c14a87100644drivers/acpi/acpica/utdebug.c +0
-0@@ -189,7 +189,7 @@ acpi_debug_print(u32 requested_debug_level,* Display the module name, current line number, thread ID (if requested),
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 190
Quoted 1 line
drivers/acpi/acpica/utdebug.c +0
-0* current procedure nesting level, and the current procedure name
Quoted 12 lines
Quoted 12 lines
drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 195
Quoted 6 lines
drivers/acpi/acpica/utdebug.c +1
-1*/ -acpi_os_printf ("%9s-%04ld " , module_name, line_number); +acpi_os_printf ("%9s-%04u " , module_name, line_number);#ifdef ACPI_APPLICATION /* Please split above changes into a separate patch.
I'm not sure if the changes can break other compilers. Please clone https://github.com/acpica/acpica, and submit a pull request there to have more ACPICA reviewers.Quoted 5 lines
Quoted 5 lines
include/acpi/acpiosxf.h acpi_status acpi_os_signal(u32 function,
Quoted 5 lines
include/acpi/acpiosxf.h +0
-0@@ -337,11 +337,12 @@ acpi_status acpi_os_signal(u32 function,void *info);
Quoted 34 lines
Quoted 34 lines
Quoted 8 lines
include/acpi/acpiosxf.h +1
-0* Debug print routines */ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printf +__printf(1, 2) void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format,...); #endif
#ifndef
ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintfinclude/acpi/acpiosxf.h acpi_status acpi_os_signal(u32 function, void *info); · line 348
Quoted 6 lines
include/acpi/acpiosxf.h +2
-1-void acpi_os_vprintf (const char *format,va_list args); +__printf(1, 0) void acpi_os_vprintf(const char *format, va_list +args);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_outputYou can use
ACPI_PRINTF_LIKEmacro instead.
This can directly go into Linux upstream.
You can prepare a different pull request for ACPICA upstream or I can help to back port the change.Thanks
LvQuoted 7 lines
--
2.7.4--
Kees Cook
Nexus Security_______________________________________________
Devel mailing list
Devel(a)acpica.org
https://lists.acpica.org/mailman/listinfo/devel
The original change doesn't handle ACPI_SIZE (which can be UINT64/UINT32 for different architectures) correctly. I changed it when it is back ported.
This sounds like a different problem.
Thanks and best regards
Lv
Quoted 372 lines
From: Moore, Robert
Subject: RE: [PATCH] acpi: Fix format string type mistakesThese formatting changes will not compile under:
Gcc 4.4.5
Gcc 5.4.0The printf formatting stuff is very delicate, as ACPICA has to be compiled under many different compilers.
Bob
Quoted 359 lines
From: Zheng, Lv
Subject: RE: [PATCH] acpi: Fix format string type mistakesHi, Kees and Emese
The pull request is under rebasing.
So if you cannot reach the URL, find the commit here:
https://github.com/acpica/acpica/pull/196Thanks and best regards
LvQuoted 25 lines
From: Zheng, Lv
Subject: RE: [PATCH] acpi: Fix format string type mistakesHi, Kees and Emese
I just helped to back port the commit here:
https://github.com/acpica/acpica/pull/196/commits/5e64857f
If you can see something wrong in it, please let me know.Thanks and best regards
LvQuoted 13 lines
From: Devel [mailto:devel-bounces(a)acpica.org] On Behalf Of Zheng, Lv
Subject: Re: [Devel] [PATCH] acpi: Fix format string type mistakesHi,
Quoted 8 lines
From: Kees Cook [mailto:keescook(a)chromium.org]
Subject: [PATCH] acpi: Fix format string type mistakesFrom: Emese Revfy <re.emese(a)gmail.com>
This adds the missing
__printfattribute which allows compile time format string checking (and will be used by the coming initify gcc plugin). Additionally, this fixes the warnings exposed by theattribute.
Quoted 20 lines
Quoted 20 lines
Quoted 20 lines
Signed-off-by Emese Revfy <re.emese(a)gmail.com>[kees: split scsi/acpi, merged attr and fix, new commit messages]Signed-off-by Kees Cook <keescook(a)chromium.org>--- drivers/acpi/acpica/dbhistry.c | 2 +- drivers/acpi/acpica/dbinput.c | 10 ++--- drivers/acpi/acpica/dbstats.c | 88 +++++++++++++++++++++--------------------- drivers/acpi/acpica/utdebug.c | 2 +- include/acpi/acpiosxf.h | 3 +- 5 files changed, 53 insertions(+), 52 deletions(-)(quoted diff) +0
-0
b/drivers/acpi/acpica/dbhistry.cindex46bd65d38df9..ec9da4830f6a100644drivers/acpi/acpica/dbhistry.c +0
-0@@ -155,7 +155,7 @@ void acpi_db_display_history(void)Quoted 5 lines
Quoted 5 lines
drivers/acpi/acpica/dbhistry.c void acpi_db_display_history(void)
Quoted 5 lines
drivers/acpi/acpica/dbhistry.c +1
-1for (i =0 ; i < acpi_gbl_num_history; i++) {if (acpi_gbl_history_buffer[history_index].command) { - acpi_os_printf("%3ld %s\n", + acpi_os_printf("%3u %s\n",acpi_gbl_history_buffer[history_index].
Quoted 2 lines
Quoted 2 lines
drivers/acpi/acpica/dbhistry.c void acpi_db_display_history(void) · line 161
Quoted 2 lines
drivers/acpi/acpica/dbhistry.c +0
-0cmd_num,acpi_gbl_history_buffer[history_index].
Quoted 6 lines
Quoted 6 lines
drivers/acpi/acpica/dbinput.c static u32 acpi_db_get_line(char
Quoted 6 lines
(quoted diff) +0
-0
b/drivers/acpi/acpica/dbinput.cindex068214f9cc9d..43be06bdb790100644drivers/acpi/acpica/dbinput.c +0
-0@@ -608,7 +608,7 @@ static u32 acpi_db_get_line(char
*input_buffer)Quoted 4 lines
Quoted 4 lines
drivers/acpi/acpica/dbinput.c static u32 acpi_db_get_line(char *input_buffer)
Quoted 4 lines
drivers/acpi/acpica/dbinput.c +0
-1(acpi_gbl_db_parsed_buf, sizeof(acpi_gbl_db_parsed_buf), input_buffer)) { acpi_os_printf - ("Buffer overflow while parsing input line (max %ucharacters)\n",
Quoted 10 lines
Quoted 10 lines
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 867
Quoted 10 lines
drivers/acpi/acpica/dbinput.c +2
-1+ ("Buffer overflow while parsing input line (max %lu +characters)\n", sizeof(acpi_gbl_db_parsed_buf));return (0 ); }@@ -864,24 +864,24 @@ acpi_db_command_dispatch(char *input_buffer,if (param_count ==0 ) { acpi_os_printf - ("Current debug level for file output is:%8.8lX\n",
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 867
Quoted 1 line
drivers/acpi/acpica/dbinput.c +1
-0+ ("Current debug level for file output is:%8.8X\n",
Quoted 3 lines
Quoted 3 lines
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer,
Quoted 3 lines
drivers/acpi/acpica/dbinput.c +0
-1acpi_gbl_db_debug_level); acpi_os_printf - ("Current debug level for console output is:%8.8lX\n",
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 870
Quoted 1 line
drivers/acpi/acpica/dbinput.c +1
-0+ ("Current debug level for console output is:%8.8X\n",
Quoted 7 lines
Quoted 7 lines
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer,
Quoted 7 lines
drivers/acpi/acpica/dbinput.c +0
-1acpi_gbl_db_console_debug_level); }else if (param_count ==2 ) { temp = acpi_gbl_db_console_debug_level; acpi_gbl_db_console_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 ); acpi_os_printf - ("Debug Level for console output was %8.8lX,now %8.8lX\n",
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 877
Quoted 1 line
drivers/acpi/acpica/dbinput.c +1
-0+ ("Debug Level for console output was %8.8X, now%8.8X\n",
Quoted 7 lines
Quoted 7 lines
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer,
Quoted 7 lines
drivers/acpi/acpica/dbinput.c +0
-1temp, acpi_gbl_db_console_debug_level); }else { temp = acpi_gbl_db_debug_level; acpi_gbl_db_debug_level =strtoul (acpi_gbl_db_args[1 ],NULL ,16 ); acpi_os_printf - ("Debug Level for file output was %8.8lX, now%8.8lX\n",
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/dbinput.c acpi_db_command_dispatch(char *input_buffer, · line 884
Quoted 1 line
drivers/acpi/acpica/dbinput.c +1
-0+ ("Debug Level for file output was %8.8X, now%8.8X\n",
Quoted 9 lines
Quoted 9 lines
drivers/acpi/acpica/dbstats.c acpi_status acpi_db_display_statistics(char
Quoted 9 lines
drivers/acpi/acpica/dbinput.c +0
-0temp, acpi_gbl_db_debug_level); }break ;(quoted diff) +0
-0
b/drivers/acpi/acpica/dbstats.cindexa414e1fa6f9d..de7023024b12100644drivers/acpi/acpica/dbstats.c +0
-0@@ -377,17 +377,17 @@ acpi_status acpi_db_display_statistics(char
*type_arg)Quoted 15 lines
Quoted 15 lines
Quoted 15 lines
drivers/acpi/acpica/dbstats.c +2
-2"ACPI_TYPE", "NODES", "OBJECTS");for (i =0 ; i <ACPI_TYPE_NS_NODE_MAX ; i++) { -acpi_os_printf ("%16.16s % 10ld% 10ld\n" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,acpi_ut_get_type_name (i), acpi_gbl_node_type_count[i], acpi_gbl_obj_type_count[i]); } -acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"Misc/Unknown" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"Misc/Unknown" , acpi_gbl_node_type_count_misc, acpi_gbl_obj_type_count_misc);Quoted 6 lines
Quoted 6 lines
drivers/acpi/acpica/dbstats.c acpi_status acpi_db_display_statistics(char
Quoted 6 lines
drivers/acpi/acpica/dbstats.c +1
-1-acpi_os_printf ("%16.16s % 10ld% 10ld\n" ,"TOTALS:" , +acpi_os_printf ("%16.16s % 10d% 10d\n" ,"TOTALS:" , acpi_gbl_num_nodes, acpi_gbl_num_objects);break ;@@ -415,16 +415,16 @@ acpi_status acpi_db_display_statistics(char
*type_arg)Quoted 7 lines
Quoted 7 lines
drivers/acpi/acpica/dbstats.c acpi_status acpi_db_display_statistics(char *type_arg)
Quoted 7 lines
drivers/acpi/acpica/dbstats.c +1
-2case CMD_STAT_MISC :acpi_os_printf ("\nMiscellaneous Statistics:\n\n" ); -acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7ld\n" , +acpi_os_printf ("Calls to AcpiPsFind:.. ........% 7u\n" , acpi_gbl_ps_find_count); - acpi_os_printf("Calls to AcpiNsLookup:..........%7ld\n",
Quoted 139 lines
Quoted 139 lines
Quoted 139 lines
drivers/acpi/acpica/dbstats.c +40
-39+acpi_os_printf ("Calls to AcpiNsLookup:..........% 7u\n" , acpi_gbl_ns_lookup_count);acpi_os_printf ("\n" );acpi_os_printf ("Mutex usage:\n\n" );for (i =0 ; i <ACPI_NUM_MUTEX ; i++) { -acpi_os_printf ("%-28s: % 7ld\n" , +acpi_os_printf ("%-28s: % 7u\n" ,acpi_ut_get_mutex_name (i), acpi_gbl_mutex_info[i].use_count); }@@ -434,87 +434,87 @@ acpi_status acpi_db_display_statistics(char *type_arg)acpi_os_printf ("\nInternal object sizes:\n\n" ); -acpi_os_printf ("Common %3d\n" , +acpi_os_printf ("Common %3lu\n" ,sizeof (struct acpi_object_common )); -acpi_os_printf ("Number %3d\n" , +acpi_os_printf ("Number %3lu\n" ,sizeof (struct acpi_object_integer )); -acpi_os_printf ("String %3d\n" , +acpi_os_printf ("String %3lu\n" ,sizeof (struct acpi_object_string )); -acpi_os_printf ("Buffer %3d\n" , +acpi_os_printf ("Buffer %3lu\n" ,sizeof (struct acpi_object_buffer )); -acpi_os_printf ("Package %3d\n" , +acpi_os_printf ("Package %3lu\n" ,sizeof (struct acpi_object_package )); -acpi_os_printf ("BufferField %3d\n" , +acpi_os_printf ("BufferField %3lu\n" ,sizeof (struct acpi_object_buffer_field )); -acpi_os_printf ("Device %3d\n" , +acpi_os_printf ("Device %3lu\n" ,sizeof (struct acpi_object_device )); -acpi_os_printf ("Event %3d\n" , +acpi_os_printf ("Event %3lu\n" ,sizeof (struct acpi_object_event )); -acpi_os_printf ("Method %3d\n" , +acpi_os_printf ("Method %3lu\n" ,sizeof (struct acpi_object_method )); -acpi_os_printf ("Mutex %3d\n" , +acpi_os_printf ("Mutex %3lu\n" ,sizeof (struct acpi_object_mutex )); -acpi_os_printf ("Region %3d\n" , +acpi_os_printf ("Region %3lu\n" ,sizeof (struct acpi_object_region )); -acpi_os_printf ("PowerResource %3d\n" , +acpi_os_printf ("PowerResource %3lu\n" ,sizeof (struct acpi_object_power_resource )); -acpi_os_printf ("Processor %3d\n" , +acpi_os_printf ("Processor %3lu\n" ,sizeof (struct acpi_object_processor )); -acpi_os_printf ("ThermalZone %3d\n" , +acpi_os_printf ("ThermalZone %3lu\n" ,sizeof (struct acpi_object_thermal_zone )); -acpi_os_printf ("RegionField %3d\n" , +acpi_os_printf ("RegionField %3lu\n" ,sizeof (struct acpi_object_region_field )); -acpi_os_printf ("BankField %3d\n" , +acpi_os_printf ("BankField %3lu\n" ,sizeof (struct acpi_object_bank_field )); -acpi_os_printf ("IndexField %3d\n" , +acpi_os_printf ("IndexField %3lu\n" ,sizeof (struct acpi_object_index_field )); -acpi_os_printf ("Reference %3d\n" , +acpi_os_printf ("Reference %3lu\n" ,sizeof (struct acpi_object_reference )); -acpi_os_printf ("Notify %3d\n" , +acpi_os_printf ("Notify %3lu\n" ,sizeof (struct acpi_object_notify_handler )); -acpi_os_printf ("AddressSpace %3d\n" , +acpi_os_printf ("AddressSpace %3lu\n" ,sizeof (struct acpi_object_addr_handler )); -acpi_os_printf ("Extra %3d\n" , +acpi_os_printf ("Extra %3lu\n" ,sizeof (struct acpi_object_extra )); -acpi_os_printf ("Data %3d\n" , +acpi_os_printf ("Data %3lu\n" ,sizeof (struct acpi_object_data ));acpi_os_printf ("\n" ); -acpi_os_printf ("ParseObject %3d\n" , +acpi_os_printf ("ParseObject %3lu\n" ,sizeof (struct acpi_parse_obj_common )); -acpi_os_printf ("ParseObjectNamed %3d\n" , +acpi_os_printf ("ParseObjectNamed %3lu\n" ,sizeof (struct acpi_parse_obj_named )); -acpi_os_printf ("ParseObjectAsl %3d\n" , +acpi_os_printf ("ParseObjectAsl %3lu\n" ,sizeof (struct acpi_parse_obj_asl )); -acpi_os_printf ("OperandObject %3d\n" , +acpi_os_printf ("OperandObject %3lu\n" ,sizeof (union acpi_operand_object )); -acpi_os_printf ("NamespaceNode %3d\n" , +acpi_os_printf ("NamespaceNode %3lu\n" ,sizeof (struct acpi_namespace_node )); -acpi_os_printf ("AcpiObject %3d\n" , +acpi_os_printf ("AcpiObject %3lu\n" ,sizeof (union acpi_object ));acpi_os_printf ("\n" ); -acpi_os_printf ("Generic State %3d\n" , +acpi_os_printf ("Generic State %3lu\n" ,sizeof (union acpi_generic_state )); -acpi_os_printf ("Common State %3d\n" , +acpi_os_printf ("Common State %3lu\n" ,sizeof (struct acpi_common_state )); -acpi_os_printf ("Control State %3d\n" , +acpi_os_printf ("Control State %3lu\n" ,sizeof (struct acpi_control_state )); -acpi_os_printf ("Update State %3d\n" , +acpi_os_printf ("Update State %3lu\n" ,sizeof (struct acpi_update_state )); -acpi_os_printf ("Scope State %3d\n" , +acpi_os_printf ("Scope State %3lu\n" ,sizeof (struct acpi_scope_state )); -acpi_os_printf ("Parse Scope %3d\n" , +acpi_os_printf ("Parse Scope %3lu\n" ,sizeof (struct acpi_pscope_state )); -acpi_os_printf ("Package State %3d\n" , +acpi_os_printf ("Package State %3lu\n" ,sizeof (struct acpi_pkg_state )); -acpi_os_printf ("Thread State %3d\n" , +acpi_os_printf ("Thread State %3lu\n" ,sizeof (struct acpi_thread_state )); -acpi_os_printf ("Result Values %3d\n" , +acpi_os_printf ("Result Values %3lu\n" ,sizeof (struct acpi_result_values )); -acpi_os_printf ("Notify Info %3d\n" , +acpi_os_printf ("Notify Info %3lu\n" ,sizeof (struct acpi_notify_info ));break ;Quoted 7 lines
Quoted 7 lines
drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 189
Quoted 7 lines
(quoted diff) +0
-0
b/drivers/acpi/acpica/utdebug.cindex044df9b0356e..b4cdb9c14a87100644drivers/acpi/acpica/utdebug.c +0
-0@@ -189,7 +189,7 @@ acpi_debug_print(u32 requested_debug_level,* Display the module name, current line number, thread ID (if requested),
Quoted 1 line
Quoted 1 line
drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 190
Quoted 1 line
drivers/acpi/acpica/utdebug.c +0
-0* current procedure nesting level, and the current procedure name
Quoted 12 lines
Quoted 12 lines
drivers/acpi/acpica/utdebug.c acpi_debug_print(u32 requested_debug_level, · line 195
Quoted 6 lines
drivers/acpi/acpica/utdebug.c +1
-1*/ -acpi_os_printf ("%9s-%04ld " , module_name, line_number); +acpi_os_printf ("%9s-%04u " , module_name, line_number);#ifdef ACPI_APPLICATION /* Please split above changes into a separate patch.
I'm not sure if the changes can break other compilers. Please clone https://github.com/acpica/acpica, and submit a pull request there to have more ACPICA reviewers.Quoted 5 lines
Quoted 5 lines
include/acpi/acpiosxf.h acpi_status acpi_os_signal(u32 function,
Quoted 5 lines
include/acpi/acpiosxf.h +0
-0@@ -337,11 +337,12 @@ acpi_status acpi_os_signal(u32 function,void *info);
Quoted 34 lines
Quoted 34 lines
Quoted 8 lines
include/acpi/acpiosxf.h +1
-0* Debug print routines */ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printf +__printf(1, 2) void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format,...); #endif
#ifndef
ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintfinclude/acpi/acpiosxf.h acpi_status acpi_os_signal(u32 function, void *info); · line 348
Quoted 6 lines
include/acpi/acpiosxf.h +2
-1-void acpi_os_vprintf (const char *format,va_list args); +__printf(1, 0) void acpi_os_vprintf(const char *format, va_list +args);#endif #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_outputYou can use
ACPI_PRINTF_LIKEmacro instead.
This can directly go into Linux upstream.
You can prepare a different pull request for ACPICA upstream or I can help to back port the change.Thanks
LvQuoted 7 lines
--
2.7.4--
Kees Cook
Nexus Security_______________________________________________
Devel mailing list
Devel(a)acpica.org
https://lists.acpica.org/mailman/listinfo/devel