Merge branch 'for-linus' of git://git.selinuxproject.org/~jmorris/linux-security
* 'for-linus' of git://git.selinuxproject.org/~jmorris/linux-security: TPM: Zero buffer after copying to userspace TPM: Call tpm_transmit with correct size TPM: tpm_nsc: Fix a double free of pdev in cleanup_nsc TPM: TCG_ATMEL should depend on HAS_IOPORT
This commit is contained in:
Коммит
d942e43b58
|
@ -43,6 +43,7 @@ config TCG_NSC
|
|||
|
||||
config TCG_ATMEL
|
||||
tristate "Atmel TPM Interface"
|
||||
depends on PPC64 || HAS_IOPORT
|
||||
---help---
|
||||
If you have a TPM security chip from Atmel say Yes and it
|
||||
will be accessible from within Linux. To compile this driver
|
||||
|
|
|
@ -383,6 +383,9 @@ static ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
|
|||
u32 count, ordinal;
|
||||
unsigned long stop;
|
||||
|
||||
if (bufsiz > TPM_BUFSIZE)
|
||||
bufsiz = TPM_BUFSIZE;
|
||||
|
||||
count = be32_to_cpu(*((__be32 *) (buf + 2)));
|
||||
ordinal = be32_to_cpu(*((__be32 *) (buf + 6)));
|
||||
if (count == 0)
|
||||
|
@ -1102,6 +1105,7 @@ ssize_t tpm_read(struct file *file, char __user *buf,
|
|||
{
|
||||
struct tpm_chip *chip = file->private_data;
|
||||
ssize_t ret_size;
|
||||
int rc;
|
||||
|
||||
del_singleshot_timer_sync(&chip->user_read_timer);
|
||||
flush_work_sync(&chip->work);
|
||||
|
@ -1112,8 +1116,11 @@ ssize_t tpm_read(struct file *file, char __user *buf,
|
|||
ret_size = size;
|
||||
|
||||
mutex_lock(&chip->buffer_mutex);
|
||||
if (copy_to_user(buf, chip->data_buffer, ret_size))
|
||||
rc = copy_to_user(buf, chip->data_buffer, ret_size);
|
||||
memset(chip->data_buffer, 0, ret_size);
|
||||
if (rc)
|
||||
ret_size = -EFAULT;
|
||||
|
||||
mutex_unlock(&chip->buffer_mutex);
|
||||
}
|
||||
|
||||
|
|
|
@ -396,8 +396,6 @@ static void __exit cleanup_nsc(void)
|
|||
if (pdev) {
|
||||
tpm_nsc_remove(&pdev->dev);
|
||||
platform_device_unregister(pdev);
|
||||
kfree(pdev);
|
||||
pdev = NULL;
|
||||
}
|
||||
|
||||
platform_driver_unregister(&nsc_drv);
|
||||
|
|
Загрузка…
Ссылка в новой задаче