|
From: | Stefan Berger |
Subject: | Re: [Qemu-devel] [PATCH V13 7/7] Add fd parameter for TPM passthrough driver |
Date: | Mon, 12 Dec 2011 19:17:46 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110928 Fedora/3.1.15-1.fc14 Lightning/1.0b3pre Thunderbird/3.1.15 |
On 12/12/2011 06:30 PM, Anthony Liguori wrote:
On 12/12/2011 01:12 PM, Stefan Berger wrote:Enable the passing of a file descriptor via fd=<..> to access the host'sTPM device using the TPM passthrough driver. Signed-off-by: Stefan Berger<address@hidden>
[...]
- tb->s.tpm_pt->tpm_fd = open(tb->s.tpm_pt->tpm_dev, O_RDWR); - if (tb->s.tpm_pt->tpm_fd< 0) { - error_report("Cannot access TPM device using '%s'.\n", - tb->s.tpm_pt->tpm_dev); - goto err_exit; + if (fstat(tb->s.tpm_pt->tpm_fd,&statbuf) != 0) { + error_report("Cannot determine file descriptor type for TPM " + "device: %s", strerror(errno)); + goto err_close_tpmdev; + } + + /* only allow character devices for now */ + if (!S_ISCHR(statbuf.st_mode)) { + error_report("TPM file descriptor is not a character device"); + goto err_close_tpmdev; }I think you're being overzealous here. The backend only uses read/write to interact with the passthrough device. You could use this as a mechanism to tie in an emulated VTPM by using a socket. I'm not suggesting we do that for libvtpm, but I think we don't gain anything from being overly restrictive here.
We prevent files, pipes, sockets and block devices using this check. Sockets may make sense in the future, but would like to enable that separately.
I don't think a user passing the wrong type of fd is the common case to optimize for wrt usability.
I don't think it makes sense to have the TPM passthrough driver write() into a block device or file, so therefore I prevented that. The above check is just a single line...
Stefan
[Prev in Thread] | Current Thread | [Next in Thread] |