diff mbox

[tpmdd-devel] tpm: fix a sparse error in tpm-sysfs.c

Message ID 1485888239-7727-1-git-send-email-stefanb@linux.vnet.ibm.com
State New
Headers show

Commit Message

Stefan Berger Jan. 31, 2017, 6:43 p.m. UTC
drivers/char/tpm/tpm-sysfs.c:161:25: warning: expression using sizeof bool

Fixes: c659af78eb7b ("tpm: Check size of response before accessing data")
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
---
 drivers/char/tpm/tpm.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jarkko Sakkinen Jan. 31, 2017, 8:37 p.m. UTC | #1
On Tue, Jan 31, 2017 at 01:43:59PM -0500, Stefan Berger wrote:
> drivers/char/tpm/tpm-sysfs.c:161:25: warning: expression using sizeof bool
> 
> Fixes: c659af78eb7b ("tpm: Check size of response before accessing data")
> Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
> ---
>  drivers/char/tpm/tpm.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> index bff37be..6b4e7aa 100644
> --- a/drivers/char/tpm/tpm.h
> +++ b/drivers/char/tpm/tpm.h
> @@ -281,7 +281,7 @@ struct permanent_flags_t {
>  typedef union {
>  	struct	permanent_flags_t perm_flags;
>  	struct	stclear_flags_t	stclear_flags;
> -	bool	owned;
> +	__u8	owned;
>  	__be32	num_pcrs;
>  	struct	tpm_version_t	tpm_version;
>  	struct	tpm_version_1_2_t tpm_version_1_2;
> -- 
> 2.4.3

A better description would be:

  The field owned has wrong sized type. This commit fixes the
  issue.

?

/Jarkko

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Jarkko Sakkinen Feb. 1, 2017, 8:08 a.m. UTC | #2
On Tue, Jan 31, 2017 at 10:37:14PM +0200, Jarkko Sakkinen wrote:
> On Tue, Jan 31, 2017 at 01:43:59PM -0500, Stefan Berger wrote:
> > drivers/char/tpm/tpm-sysfs.c:161:25: warning: expression using sizeof bool
> > 
> > Fixes: c659af78eb7b ("tpm: Check size of response before accessing data")
> > Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
> > ---
> >  drivers/char/tpm/tpm.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> > index bff37be..6b4e7aa 100644
> > --- a/drivers/char/tpm/tpm.h
> > +++ b/drivers/char/tpm/tpm.h
> > @@ -281,7 +281,7 @@ struct permanent_flags_t {
> >  typedef union {
> >  	struct	permanent_flags_t perm_flags;
> >  	struct	stclear_flags_t	stclear_flags;
> > -	bool	owned;
> > +	__u8	owned;
> >  	__be32	num_pcrs;
> >  	struct	tpm_version_t	tpm_version;
> >  	struct	tpm_version_1_2_t tpm_version_1_2;
> > -- 
> > 2.4.3
> 
> A better description would be:
> 
>   The field owned has wrong sized type. This commit fixes the
>   issue.
> 
> ?
> 
> /Jarkko

And doesn't owned print invalid results on a big endian system
i.e. 0x1000000? The commit message needs to be rewritten to capture
the problem.

/Jarkko

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Jarkko Sakkinen Feb. 1, 2017, 11:17 a.m. UTC | #3
On Wed, Feb 01, 2017 at 10:08:39AM +0200, Jarkko Sakkinen wrote:
> On Tue, Jan 31, 2017 at 10:37:14PM +0200, Jarkko Sakkinen wrote:
> > On Tue, Jan 31, 2017 at 01:43:59PM -0500, Stefan Berger wrote:
> > > drivers/char/tpm/tpm-sysfs.c:161:25: warning: expression using sizeof bool
> > > 
> > > Fixes: c659af78eb7b ("tpm: Check size of response before accessing data")
> > > Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
> > > ---
> > >  drivers/char/tpm/tpm.h | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> > > index bff37be..6b4e7aa 100644
> > > --- a/drivers/char/tpm/tpm.h
> > > +++ b/drivers/char/tpm/tpm.h
> > > @@ -281,7 +281,7 @@ struct permanent_flags_t {
> > >  typedef union {
> > >  	struct	permanent_flags_t perm_flags;
> > >  	struct	stclear_flags_t	stclear_flags;
> > > -	bool	owned;
> > > +	__u8	owned;
> > >  	__be32	num_pcrs;
> > >  	struct	tpm_version_t	tpm_version;
> > >  	struct	tpm_version_1_2_t tpm_version_1_2;
> > > -- 
> > > 2.4.3
> > 
> > A better description would be:
> > 
> >   The field owned has wrong sized type. This commit fixes the
> >   issue.
> > 
> > ?
> > 
> > /Jarkko
> 
> And doesn't owned print invalid results on a big endian system
> i.e. 0x1000000? The commit message needs to be rewritten to capture
> the problem.

Please ignore this, the conversion is done in tpm_getcap(). I'll
update the commit message.

/Jarkko

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Jarkko Sakkinen Feb. 1, 2017, noon UTC | #4
On Wed, Feb 01, 2017 at 01:17:34PM +0200, Jarkko Sakkinen wrote:
> On Wed, Feb 01, 2017 at 10:08:39AM +0200, Jarkko Sakkinen wrote:
> > On Tue, Jan 31, 2017 at 10:37:14PM +0200, Jarkko Sakkinen wrote:
> > > On Tue, Jan 31, 2017 at 01:43:59PM -0500, Stefan Berger wrote:
> > > > drivers/char/tpm/tpm-sysfs.c:161:25: warning: expression using sizeof bool
> > > > 
> > > > Fixes: c659af78eb7b ("tpm: Check size of response before accessing data")
> > > > Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
> > > > ---
> > > >  drivers/char/tpm/tpm.h | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> > > > index bff37be..6b4e7aa 100644
> > > > --- a/drivers/char/tpm/tpm.h
> > > > +++ b/drivers/char/tpm/tpm.h
> > > > @@ -281,7 +281,7 @@ struct permanent_flags_t {
> > > >  typedef union {
> > > >  	struct	permanent_flags_t perm_flags;
> > > >  	struct	stclear_flags_t	stclear_flags;
> > > > -	bool	owned;
> > > > +	__u8	owned;
> > > >  	__be32	num_pcrs;
> > > >  	struct	tpm_version_t	tpm_version;
> > > >  	struct	tpm_version_1_2_t tpm_version_1_2;
> > > > -- 
> > > > 2.4.3
> > > 
> > > A better description would be:
> > > 
> > >   The field owned has wrong sized type. This commit fixes the
> > >   issue.
> > > 
> > > ?
> > > 
> > > /Jarkko
> > 
> > And doesn't owned print invalid results on a big endian system
> > i.e. 0x1000000? The commit message needs to be rewritten to capture
> > the problem.
> 
> Please ignore this, the conversion is done in tpm_getcap(). I'll
> update the commit message.

Now I'm really tripping :( tpm_getcap() does not do any sort of
conversion. _Bool in gcc is one byte. Sorry about this. This is
purely a type error. The size is correct.

/Jarkko

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
diff mbox

Patch

diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
index bff37be..6b4e7aa 100644
--- a/drivers/char/tpm/tpm.h
+++ b/drivers/char/tpm/tpm.h
@@ -281,7 +281,7 @@  struct permanent_flags_t {
 typedef union {
 	struct	permanent_flags_t perm_flags;
 	struct	stclear_flags_t	stclear_flags;
-	bool	owned;
+	__u8	owned;
 	__be32	num_pcrs;
 	struct	tpm_version_t	tpm_version;
 	struct	tpm_version_1_2_t tpm_version_1_2;