|
@@ -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;
|