X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fefivars.c;h=a3195745276f603f8ce80bc21518bfcbbc1f6f5c;hp=000dae9de0fd0f389823d7339ea638b8165c45f6;hb=fa6ac76083b8ffc1309876459f54f9f0e2843731;hpb=b47d419c25ecc735615a1088060c1ec8bef1e41f diff --git a/src/shared/efivars.c b/src/shared/efivars.c index 000dae9de..a31957452 100644 --- a/src/shared/efivars.c +++ b/src/shared/efivars.c @@ -130,7 +130,7 @@ int efi_get_variable( int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p) { _cleanup_free_ void *s = NULL; - size_t ss; + size_t ss = 0; int r; char *x; @@ -330,7 +330,7 @@ static int boot_id_hex(const char s[4]) { else if (s[i] >= 'A' && s[i] <= 'F') id |= (s[i] - 'A' + 10) << (3 - i) * 4; else - return -1; + return -EINVAL; return id; } @@ -393,7 +393,7 @@ fail: static int read_usec(sd_id128_t vendor, const char *name, usec_t *u) { _cleanup_free_ char *j = NULL; int r; - uint64_t x; + uint64_t x = 0; assert(name); assert(u); @@ -440,9 +440,6 @@ int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader) { int efi_loader_get_device_part_uuid(sd_id128_t *u) { _cleanup_free_ char *p = NULL; int r, parsed[16]; - unsigned i; - - assert(u); r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderDevicePartUUID", &p); if (r < 0) @@ -455,8 +452,12 @@ int efi_loader_get_device_part_uuid(sd_id128_t *u) { &parsed[12], &parsed[13], &parsed[14], &parsed[15]) != 16) return -EIO; - for (i = 0; i < ELEMENTSOF(parsed); i++) - u->bytes[i] = parsed[i]; + if (u) { + unsigned i; + + for (i = 0; i < ELEMENTSOF(parsed); i++) + u->bytes[i] = parsed[i]; + } return 0; }