mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-19 12:00:00 +00:00
ACPICA: Create and deploy safe version of strncpy
ACPICA commit 64ad9c69a1bd534a466e060a33c0bbf5fc9e189c acpi_ut_safe_strncpy - copy and terminate string. Strncpy is not guaranteed to terminate the copied string if the input is longer than the length of the target. No functional change. Link: https://github.com/acpica/acpica/commit/64ad9c69 Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Erik Schmauss <erik.schmauss@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
2cb0ba70fb
commit
ee68d4773e
@ -638,9 +638,11 @@ void ut_convert_backslashes(char *pathname);
|
||||
|
||||
void acpi_ut_repair_name(char *name);
|
||||
|
||||
#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION)
|
||||
#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) || defined (ACPI_DEBUG_OUTPUT)
|
||||
u8 acpi_ut_safe_strcpy(char *dest, acpi_size dest_size, char *source);
|
||||
|
||||
void acpi_ut_safe_strncpy(char *dest, char *source, acpi_size dest_size);
|
||||
|
||||
u8 acpi_ut_safe_strcat(char *dest, acpi_size dest_size, char *source);
|
||||
|
||||
u8
|
||||
|
@ -99,8 +99,8 @@ void acpi_db_open_debug_file(char *name)
|
||||
}
|
||||
|
||||
acpi_os_printf("Debug output file %s opened\n", name);
|
||||
strncpy(acpi_gbl_db_debug_filename, name,
|
||||
sizeof(acpi_gbl_db_debug_filename));
|
||||
acpi_ut_safe_strncpy(acpi_gbl_db_debug_filename, name,
|
||||
sizeof(acpi_gbl_db_debug_filename));
|
||||
acpi_gbl_db_output_to_file = TRUE;
|
||||
}
|
||||
#endif
|
||||
|
@ -94,9 +94,11 @@ void acpi_ps_init_op(union acpi_parse_object *op, u16 opcode)
|
||||
op->common.descriptor_type = ACPI_DESC_TYPE_PARSER;
|
||||
op->common.aml_opcode = opcode;
|
||||
|
||||
ACPI_DISASM_ONLY_MEMBERS(strncpy(op->common.aml_op_name,
|
||||
(acpi_ps_get_opcode_info(opcode))->
|
||||
name, sizeof(op->common.aml_op_name)));
|
||||
ACPI_DISASM_ONLY_MEMBERS(acpi_ut_safe_strncpy(op->common.aml_op_name,
|
||||
(acpi_ps_get_opcode_info
|
||||
(opcode))->name,
|
||||
sizeof(op->common.
|
||||
aml_op_name)));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -140,7 +140,7 @@ int acpi_ut_stricmp(char *string1, char *string2)
|
||||
return (c1 - c2);
|
||||
}
|
||||
|
||||
#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION)
|
||||
#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) || defined (ACPI_DEBUG_OUTPUT)
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ut_safe_strcpy, acpi_ut_safe_strcat, acpi_ut_safe_strncat
|
||||
@ -199,4 +199,13 @@ acpi_ut_safe_strncat(char *dest,
|
||||
strncat(dest, source, max_transfer_length);
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
void acpi_ut_safe_strncpy(char *dest, char *source, acpi_size dest_size)
|
||||
{
|
||||
/* Always terminate destination string */
|
||||
|
||||
strncpy(dest, source, dest_size);
|
||||
dest[dest_size - 1] = 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -402,8 +402,8 @@ acpi_ut_track_allocation(struct acpi_debug_mem_block *allocation,
|
||||
allocation->component = component;
|
||||
allocation->line = line;
|
||||
|
||||
strncpy(allocation->module, module, ACPI_MAX_MODULE_NAME);
|
||||
allocation->module[ACPI_MAX_MODULE_NAME - 1] = 0;
|
||||
acpi_ut_safe_strncpy(allocation->module, (char *)module,
|
||||
ACPI_MAX_MODULE_NAME);
|
||||
|
||||
if (!element) {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user