diff options
author | Peter Huewe <PeterHuewe@gmx.de> | 2013-10-30 15:46:55 -0400 |
---|---|---|
committer | Peter Huewe <peterhuewe@gmx.de> | 2014-01-06 08:37:23 -0500 |
commit | 747d35bd9bb4ae6bd74b19baa5bbe32f3e0cee11 (patch) | |
tree | 688429e581a2d74cab3ffce355030b6885c6accf /drivers/char | |
parent | 38fd2c202a3d82bc12430bce5789fa2c2a406f71 (diff) |
tpm/tpm_ppi: Do not compare strcmp(a,b) == -1
Depending on the implementation strcmp might return the difference between
two strings not only -1,0,1 consequently
if (strcmp (a,b) == -1)
might lead to taking the wrong branch
-> compare with < 0 instead,
which in any case is more canonical.
Cc: stable@vger.kernel.org
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/tpm/tpm_ppi.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c index 8e562dc65601..18c5810b646b 100644 --- a/drivers/char/tpm/tpm_ppi.c +++ b/drivers/char/tpm/tpm_ppi.c | |||
@@ -169,7 +169,7 @@ static ssize_t tpm_store_ppi_request(struct device *dev, | |||
169 | * is updated with function index from SUBREQ to SUBREQ2 since PPI | 169 | * is updated with function index from SUBREQ to SUBREQ2 since PPI |
170 | * version 1.1 | 170 | * version 1.1 |
171 | */ | 171 | */ |
172 | if (strcmp(version, "1.1") == -1) | 172 | if (strcmp(version, "1.1") < 0) |
173 | params[2].integer.value = TPM_PPI_FN_SUBREQ; | 173 | params[2].integer.value = TPM_PPI_FN_SUBREQ; |
174 | else | 174 | else |
175 | params[2].integer.value = TPM_PPI_FN_SUBREQ2; | 175 | params[2].integer.value = TPM_PPI_FN_SUBREQ2; |
@@ -179,7 +179,7 @@ static ssize_t tpm_store_ppi_request(struct device *dev, | |||
179 | * string/package type. For PPI version 1.0 and 1.1, use buffer type | 179 | * string/package type. For PPI version 1.0 and 1.1, use buffer type |
180 | * for compatibility, and use package type since 1.2 according to spec. | 180 | * for compatibility, and use package type since 1.2 according to spec. |
181 | */ | 181 | */ |
182 | if (strcmp(version, "1.2") == -1) { | 182 | if (strcmp(version, "1.2") < 0) { |
183 | params[3].type = ACPI_TYPE_BUFFER; | 183 | params[3].type = ACPI_TYPE_BUFFER; |
184 | params[3].buffer.length = sizeof(req); | 184 | params[3].buffer.length = sizeof(req); |
185 | sscanf(buf, "%d", &req); | 185 | sscanf(buf, "%d", &req); |
@@ -245,7 +245,7 @@ static ssize_t tpm_show_ppi_transition_action(struct device *dev, | |||
245 | * (e.g. Capella with PPI 1.0) need integer/string/buffer type, so for | 245 | * (e.g. Capella with PPI 1.0) need integer/string/buffer type, so for |
246 | * compatibility, define params[3].type as buffer, if PPI version < 1.2 | 246 | * compatibility, define params[3].type as buffer, if PPI version < 1.2 |
247 | */ | 247 | */ |
248 | if (strcmp(version, "1.2") == -1) { | 248 | if (strcmp(version, "1.2") < 0) { |
249 | params[3].type = ACPI_TYPE_BUFFER; | 249 | params[3].type = ACPI_TYPE_BUFFER; |
250 | params[3].buffer.length = 0; | 250 | params[3].buffer.length = 0; |
251 | params[3].buffer.pointer = NULL; | 251 | params[3].buffer.pointer = NULL; |
@@ -387,7 +387,7 @@ static ssize_t show_ppi_operations(char *buf, u32 start, u32 end) | |||
387 | kfree(output.pointer); | 387 | kfree(output.pointer); |
388 | output.length = ACPI_ALLOCATE_BUFFER; | 388 | output.length = ACPI_ALLOCATE_BUFFER; |
389 | output.pointer = NULL; | 389 | output.pointer = NULL; |
390 | if (strcmp(version, "1.2") == -1) | 390 | if (strcmp(version, "1.2") < 0) |
391 | return -EPERM; | 391 | return -EPERM; |
392 | 392 | ||
393 | params[2].integer.value = TPM_PPI_FN_GETOPR; | 393 | params[2].integer.value = TPM_PPI_FN_GETOPR; |