X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Flib%2Fefi.c;fp=src%2Flib%2Fefi.c;h=99b663871b89c49bbde45763d706875bcd341516;hb=796f2fb04aa36d2db9371c270077515afd919c4e;hp=1f0f3dbc94fdf61d4a3a364360600ebef7847eba;hpb=c5c57223bb44042f2ab4ee2c44049a8913d47c33;p=debian%2Fefibootmgr diff --git a/src/lib/efi.c b/src/lib/efi.c index 1f0f3db..99b6638 100644 --- a/src/lib/efi.c +++ b/src/lib/efi.c @@ -20,6 +20,7 @@ #define _FILE_OFFSET_BITS 64 +#include #include #include #include @@ -171,9 +172,12 @@ create_or_edit_variable(efi_variable_t *var) static int select_boot_var_names(const struct dirent *d) { - int num, rc; - rc = sscanf(d->d_name, "Boot0%03x-%*s", &num); - return rc; + if (!strncmp(d->d_name, "Boot", 4) && + isxdigit(d->d_name[4]) && isxdigit(d->d_name[5]) && + isxdigit(d->d_name[6]) && isxdigit(d->d_name[7]) && + d->d_name[8] == '-') + return 1; + return 0; } int @@ -716,7 +720,7 @@ make_linux_efi_variable(efi_variable_t *var, memset(buffer, 0, sizeof(buffer)); /* VariableName needs to be BootXXXX */ - sprintf(buffer, "Boot%04x", free_number); + sprintf(buffer, "Boot%04X", free_number); efichar_from_char(var->VariableName, buffer, 1024);