drivers/char/tpm/tpm_ppi: use strlcpy instead of strncpy
Ensure that the 'version' string includes a NULL terminator after its copied out of the acpi table. Signed-off-by: Chen Gang <gang.chen@asianux.com> Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com>
This commit is contained in:
Родитель
2d089f82ae
Коммит
e361200bfc
|
@ -158,9 +158,9 @@ static ssize_t tpm_store_ppi_request(struct device *dev,
|
|||
ACPI_TYPE_STRING);
|
||||
if (ACPI_FAILURE(status))
|
||||
return -ENOMEM;
|
||||
strncpy(version,
|
||||
strlcpy(version,
|
||||
((union acpi_object *)output.pointer)->string.pointer,
|
||||
PPI_VERSION_LEN);
|
||||
PPI_VERSION_LEN + 1);
|
||||
kfree(output.pointer);
|
||||
output.length = ACPI_ALLOCATE_BUFFER;
|
||||
output.pointer = NULL;
|
||||
|
@ -237,9 +237,9 @@ static ssize_t tpm_show_ppi_transition_action(struct device *dev,
|
|||
ACPI_TYPE_STRING);
|
||||
if (ACPI_FAILURE(status))
|
||||
return -ENOMEM;
|
||||
strncpy(version,
|
||||
strlcpy(version,
|
||||
((union acpi_object *)output.pointer)->string.pointer,
|
||||
PPI_VERSION_LEN);
|
||||
PPI_VERSION_LEN + 1);
|
||||
/*
|
||||
* PPI spec defines params[3].type as empty package, but some platforms
|
||||
* (e.g. Capella with PPI 1.0) need integer/string/buffer type, so for
|
||||
|
@ -351,7 +351,7 @@ cleanup:
|
|||
static ssize_t show_ppi_operations(char *buf, u32 start, u32 end)
|
||||
{
|
||||
char *str = buf;
|
||||
char version[PPI_VERSION_LEN];
|
||||
char version[PPI_VERSION_LEN + 1];
|
||||
acpi_handle handle;
|
||||
acpi_status status;
|
||||
struct acpi_object_list input;
|
||||
|
@ -381,9 +381,9 @@ static ssize_t show_ppi_operations(char *buf, u32 start, u32 end)
|
|||
if (ACPI_FAILURE(status))
|
||||
return -ENOMEM;
|
||||
|
||||
strncpy(version,
|
||||
strlcpy(version,
|
||||
((union acpi_object *)output.pointer)->string.pointer,
|
||||
PPI_VERSION_LEN);
|
||||
PPI_VERSION_LEN + 1);
|
||||
kfree(output.pointer);
|
||||
output.length = ACPI_ALLOCATE_BUFFER;
|
||||
output.pointer = NULL;
|
||||
|
|
Загрузка…
Ссылка в новой задаче