From: Kylene Jo Hall <kjhall@us.ibm.com>
To: Ingo Oeser <ioe-lkml@rameria.de>
Cc: Andrew Morton <akpm@osdl.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
TPM Device Driver List <tpmdd-devel@lists.sourceforge.net>
Subject: Re: [PATCH] tpm: sysfs function buffer size fix
Date: Tue, 11 Apr 2006 16:05:02 -0500 [thread overview]
Message-ID: <1144789502.12054.18.camel@localhost.localdomain> (raw)
In-Reply-To: <200604112245.02443.ioe-lkml@rameria.de>
On Tue, 2006-04-11 at 22:45 +0200, Ingo Oeser wrote:
> Once in ALL CAPS and once in lower case?
> Sure about these?
Just found this one myself. Here is the fix.
This patch will determine the size of the buffer in the sysfs functions
based on the size of the command structure(s), such as tpm_cap, and the
known amount of data the command will return. The receive functions are
smart enough not to overflow the buffer should the command response
change.
Signed-off-by: Kylie Hall <kjhall@us.ibm.com>
---
drivers/char/tpm/tpm.c | 15 +++++++--------
1 files changed, 7 insertions(+), 8 deletions(-)
--- linux-2.6.17-rc1-mm2/drivers/char/tpm/tpm.c 2006-04-11 14:56:13.311776750 -0500
+++ linux-2.6.17-rc1/drivers/char/tpm/tpm.c 2006-04-11 15:03:29.427032250 -0500
@@ -490,7 +490,7 @@ static ssize_t transmit_cmd(struct tpm_c
void tpm_gen_interrupt(struct tpm_chip *chip)
{
- u8 data[30];
+ u8 data[max(ARRAY_SIZE(tpm_cap), 30)];
ssize_t rc;
memcpy(data, tpm_cap, sizeof(tpm_cap));
@@ -504,7 +504,7 @@ EXPORT_SYMBOL_GPL(tpm_gen_interrupt);
void tpm_get_timeouts(struct tpm_chip *chip)
{
- u8 data[30];
+ u8 data[max(ARRAY_SIZE(tpm_cap), 30)];
ssize_t rc;
u32 timeout;
@@ -564,7 +564,6 @@ EXPORT_SYMBOL_GPL(tpm_get_timeouts);
void tpm_continue_selftest(struct tpm_chip *chip)
{
-
u8 data[] = {
0, 193, /* TPM_TAG_RQU_COMMAND */
0, 0, 0, 10, /* length */
@@ -578,7 +577,7 @@ EXPORT_SYMBOL_GPL(tpm_continue_selftest)
ssize_t tpm_show_enabled(struct device * dev, struct device_attribute * attr,
char *buf)
{
- u8 data[35];
+ u8 data[max(ARRAY_SIZE(tpm_cap), 30)];
ssize_t rc;
struct tpm_chip *chip = dev_get_drvdata(dev);
@@ -600,7 +599,7 @@ EXPORT_SYMBOL_GPL(tpm_show_enabled);
ssize_t tpm_show_active(struct device * dev, struct device_attribute * attr,
char *buf)
{
- u8 data[35];
+ u8 data[max(ARRAY_SIZE(tpm_cap), 35)];
ssize_t rc;
struct tpm_chip *chip = dev_get_drvdata(dev);
@@ -673,7 +672,7 @@ static const u8 pcrread[] = {
ssize_t tpm_show_pcrs(struct device *dev, struct device_attribute *attr,
char *buf)
{
- u8 data[30];
+ u8 data[max(max(ARRAY_SIZE(tpm_cap), ARRAY_SIZE(pcrread)), 30)];
ssize_t rc;
int i, j, num_pcrs;
__be32 index;
@@ -790,7 +789,7 @@ static const u8 cap_version[] = {
ssize_t tpm_show_caps(struct device *dev, struct device_attribute *attr,
char *buf)
{
- u8 data[30];
+ u8 data[max(max(ARRAY_SIZE(tpm_cap), ARRAY_SIZE(cap_version)), 30)];
ssize_t rc;
char *str = buf;
@@ -830,7 +829,7 @@ EXPORT_SYMBOL_GPL(tpm_show_caps);
ssize_t tpm_show_caps_1_2(struct device * dev,
struct device_attribute * attr, char *buf)
{
- u8 data[30];
+ u8 data[max(max(ARRAY_SIZE(tpm_cap), ARRAY_SIZE(cap_version)), 30)];
ssize_t len;
char *str = buf;
next prev parent reply other threads:[~2006-04-11 21:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-10 14:37 [PATCH 2/7] tpm: reorganize sysfs files - Updated patch Kylene Jo Hall
2006-04-10 21:46 ` Andrew Morton
2006-04-11 14:24 ` Kylene Jo Hall
2006-04-11 18:18 ` Andrew Morton
2006-04-11 20:15 ` [PATCH] tpm: sysfs function buffer size fix Kylene Jo Hall
2006-04-11 20:45 ` Ingo Oeser
2006-04-11 21:05 ` Kylene Jo Hall [this message]
2006-04-11 22:32 ` [PATCH] tpm: compiler cleanup Kylene Jo Hall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1144789502.12054.18.camel@localhost.localdomain \
--to=kjhall@us.ibm.com \
--cc=akpm@osdl.org \
--cc=ioe-lkml@rameria.de \
--cc=linux-kernel@vger.kernel.org \
--cc=tpmdd-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox