diff options
Diffstat (limited to 'drivers/char/tpm/tpm_ppi.c')
| -rw-r--r-- | drivers/char/tpm/tpm_ppi.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c index 720ebcf29fd..2168d15bc72 100644 --- a/drivers/char/tpm/tpm_ppi.c +++ b/drivers/char/tpm/tpm_ppi.c @@ -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;  |