Alfred Agrell (@Alcaro) commented about dlls/ntdll/unix/system.c:
+#if defined(__linux__) || defined(__gnu_linux__)
- int fd, rc;
- size_t bytes, pos = 0;
- ssize_t ssz;
- char filename[128];
- char *cname;
- struct stat sb = {0};
- cname = (char *) malloc(name->Length);
- ntdll_wcstoumbs(name->Buffer, name->Length, cname, name->Length, FALSE);
- snprintf(filename, sizeof(filename),
"/sys/firmware/efi/efivars/%s-%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X", cname,
vendor->Data1, vendor->Data2, vendor->Data3, vendor->Data4[0], vendor->Data4[1],
vendor->Data4[2], vendor->Data4[3], vendor->Data4[4], vendor->Data4[5],
vendor->Data4[6], vendor->Data4[7]);
This throws a warning on 32bit builds. ``` ../dlls/ntdll/unix/system.c:3698:47: error: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Werror=format=] 3698 | "/sys/firmware/efi/efivars/%s-%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X", cname, | ~~~^ | | | unsigned int | %08lX 3699 | vendor->Data1, vendor->Data2, vendor->Data3, vendor->Data4[0], vendor->Data4[1], | ~~~~~~~~~~~~~ | | | long unsigned int ``` They're both uint32, so I'd prefer if compiler could just shut up.
But we can't really affect that on our end. Let's just explicitly cast to (unsigned).