]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
file-io: let's use offsetof() rather than sizeof() for determining EFI_FILE_INFO...
authorLennart Poettering <lennart@poettering.net>
Thu, 10 Aug 2023 08:46:05 +0000 (10:46 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 10 Aug 2023 19:11:05 +0000 (04:11 +0900)
The gnu-efi definition of the struct uses [1], our local one [0] to size
the filename array. Let's avoid an ambiguity and use offsetof() so that
this difference doesn't matter. Also, doing it this way makes very clear
to the read what happens here: it's a structure with a variable size
suffix.

src/boot/efi/proto/file-io.h

index 57df9e111c1054e71d668767dd0acf1a58d81df8..001ad48675296926831a2a7a59844879ac025c4c 100644 (file)
@@ -35,7 +35,7 @@ typedef struct {
  * position when returning EFI_BUFFER_TOO_SMALL, effectively skipping over any files when
  * the buffer was too small. Therefore, we always start with a buffer that should handle FAT32
  * max file name length. */
-#define EFI_FILE_INFO_MIN_SIZE (sizeof(EFI_FILE_INFO) + 256 * sizeof(char16_t))
+#define EFI_FILE_INFO_MIN_SIZE (offsetof(EFI_FILE_INFO, FileName) + 256U * sizeof(char16_t))
 
 typedef struct EFI_SIMPLE_FILE_SYSTEM_PROTOCOL EFI_SIMPLE_FILE_SYSTEM_PROTOCOL;
 struct EFI_SIMPLE_FILE_SYSTEM_PROTOCOL {