Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[firefly-linux-kernel-4.4.55.git] / drivers / char / tpm / tpm_ppi.c
index 720ebcf29fdfbb9a9bf05a44cee1fc4e53e4a238..2168d15bc728e22c99a61976de5050c26dc33cbe 100644 (file)
@@ -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;