Thread (33 messages) 33 messages, 8 authors, 2019-02-14

Re: [PATCH] KEYS: trusted: fix -Wvarags warning

From: James Bottomley <hidden>
Date: 2018-10-12 15:06:04
Also in: keyrings, linux-integrity, lkml

On Fri, 2018-10-12 at 07:29 -0500, Denis Kenzior wrote:
Hi Nick,
quoted
@@ -123,7 +123,7 @@ static int TSS_rawhmac(unsigned char *digest,
const unsigned char *key,
   */
  static int TSS_authhmac(unsigned char *digest, const unsigned
char *key,
  			unsigned int keylen, unsigned char *h1,
-			unsigned char *h2, unsigned char h3, ...)
+			unsigned char h2, unsigned char *h3, ...)
  {
  	unsigned char paramdigest[SHA1_DIGEST_SIZE];
  	struct sdesc *sdesc;
So my concern here is that this actually breaks the natural argument 
order compared to what the specification uses.  This in turn
requires 
one to perform some mental gymnastics and I'm not sure that this is
such 
a good idea.  Refer to 
https://trustedcomputinggroup.org/wp-content/uploads/TPM-Main-Part-3-
Commands_v1.2_rev116_01032011.pdf 
for details.

Note that H3 is really the 'continueAuthSession' variable which is a 
bool.  In the above specification BOOL has a size of 1, and
TSS_authhmac already assigns a h3 to 'c' which is used for the actual
hashing.

So can't we simply use 'bool' or uint32 as the type for h3 instead
of re-ordering everything
The problem is the standard is ambiguious.  The only thing that's
guaranteed to work for all time is a char *.  If you want to keep the
order, what I'd suggest is inserting a dummy pointer argument which is
always expected to be NULL between the h3 and the varargs.

James
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help