Skip to content

Commit dcd9819

Browse files
committed
boot: allow building sd-boot with -Werror=flex-array-member-not-at-end
1 parent 6459b88 commit dcd9819

File tree

2 files changed

+13
-15
lines changed

2 files changed

+13
-15
lines changed

measure.c

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ static EFI_STATUS tpm2_measure_to_pcr_and_tagged_event_log(
1818
uint32_t event_id,
1919
const char16_t *description) {
2020

21-
_cleanup_free_ struct event {
21+
_cleanup_free_ union event {
2222
EFI_TCG2_EVENT tcg_event;
2323
EFI_TCG2_TAGGED_EVENT tcg_tagged_event;
24-
} _packed_ *event = NULL;
24+
} *event = NULL;
2525
size_t desc_len, event_size;
2626

2727
assert(tcg);
@@ -30,21 +30,17 @@ static EFI_STATUS tpm2_measure_to_pcr_and_tagged_event_log(
3030
/* New style stuff we log as EV_EVENT_TAG with a recognizable event tag. */
3131

3232
desc_len = strsize16(description);
33-
event_size = offsetof(EFI_TCG2_EVENT, Event) + offsetof(EFI_TCG2_TAGGED_EVENT, Event) + desc_len;
33+
event_size = offsetof(EFI_TCG2_TAGGED_EVENT, Event) + desc_len;
3434

3535
event = xmalloc(event_size);
36-
*event = (struct event) {
37-
.tcg_event = (EFI_TCG2_EVENT) {
38-
.Size = event_size,
39-
.Header.HeaderSize = sizeof(EFI_TCG2_EVENT_HEADER),
40-
.Header.HeaderVersion = EFI_TCG2_EVENT_HEADER_VERSION,
41-
.Header.PCRIndex = pcrindex,
42-
.Header.EventType = EV_EVENT_TAG,
43-
},
44-
.tcg_tagged_event = {
45-
.EventId = event_id,
46-
.EventSize = desc_len,
47-
},
36+
event->tcg_tagged_event = (EFI_TCG2_TAGGED_EVENT) {
37+
.Size = event_size,
38+
.Header.HeaderSize = sizeof(EFI_TCG2_EVENT_HEADER),
39+
.Header.HeaderVersion = EFI_TCG2_EVENT_HEADER_VERSION,
40+
.Header.PCRIndex = pcrindex,
41+
.Header.EventType = EV_EVENT_TAG,
42+
.EventId = event_id,
43+
.EventSize = desc_len,
4844
};
4945
memcpy(event->tcg_tagged_event.Event, description, desc_len);
5046

proto/tcg.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ typedef struct {
5959
} _packed_ EFI_TCG2_EVENT;
6060

6161
typedef struct {
62+
uint32_t Size;
63+
EFI_TCG2_EVENT_HEADER Header;
6264
uint32_t EventId;
6365
uint32_t EventSize;
6466
uint8_t Event[];

0 commit comments

Comments
 (0)