Просмотр исходного кода

[PATCH] tpm_bios indexing fix

It generates warnings:

drivers/char/tpm/tpm_bios.c: In function `get_event_name':
drivers/char/tpm/tpm_bios.c:223: warning: cast from pointer to integer of different size
drivers/char/tpm/tpm_bios.c:223: warning: cast from pointer to integer of different size
drivers/char/tpm/tpm_bios.c:223: warning: cast from pointer to integer of different size
drivers/char/tpm/tpm_bios.c:224: warning: cast from pointer to integer of different size
drivers/char/tpm/tpm_bios.c:224: warning: cast from pointer to integer of different size
drivers/char/tpm/tpm_bios.c:224: warning: cast from pointer to integer of different size

and I'm not sure what the code is doing there, but it seems wrong.  We're
using the address of the buffer rather than the contents of it.

The patch adds more nasty typecasting, but I think the whole arrangement could
be done in a more typesafe manner.

Cc: Kylene Jo Hall <kjhall@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton 19 лет назад
Родитель
Сommit
1c40f7d4f0
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      drivers/char/tpm/tpm_bios.c

+ 2 - 2
drivers/char/tpm/tpm_bios.c

@@ -220,8 +220,8 @@ static int get_event_name(char *dest, struct tcpa_event *event,
 		}
 		}
 		break;
 		break;
 	case EVENT_TAG:
 	case EVENT_TAG:
-		event_id = be32_to_cpu(event_entry);
-		event_data_size = be32_to_cpu(&event_entry[4]);
+		event_id = be32_to_cpu(*((u32 *)event_entry));
+		event_data_size = be32_to_cpu(((u32 *)event_entry)[1]);
 
 
 		/* ToDo Row data -> Base64 */
 		/* ToDo Row data -> Base64 */