chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cgroup: simplify how instantiated units are mapped to cgroups
[elogind.git]
/
src
/
shared
/
efivars.c
diff --git
a/src/shared/efivars.c
b/src/shared/efivars.c
index 06cf127de159c174f262fc4119952361843c315b..8d004bad33525832237f942cadd9c435d2623691 100644
(file)
--- a/
src/shared/efivars.c
+++ b/
src/shared/efivars.c
@@
-231,10
+231,12
@@
int efi_get_boot_option(
if (title_size > l - offsetof(struct boot_option, title))
return -EINVAL;
if (title_size > l - offsetof(struct boot_option, title))
return -EINVAL;
- s = utf16_to_utf8(header->title, title_size);
- if (!s) {
- err = -ENOMEM;
- goto err;
+ if (title) {
+ s = utf16_to_utf8(header->title, title_size);
+ if (!s) {
+ err = -ENOMEM;
+ goto err;
+ }
}
if (header->path_len > 0) {
}
if (header->path_len > 0) {
@@
-270,12
+272,13
@@
int efi_get_boot_option(
if (dpath->drive.signature_type != 0x02)
continue;
if (dpath->drive.signature_type != 0x02)
continue;
- efi_guid_to_id128(dpath->drive.signature, &p_uuid);
+ if (part_uuid)
+ efi_guid_to_id128(dpath->drive.signature, &p_uuid);
continue;
}
/* Sub-Type 4 – File Path */
continue;
}
/* Sub-Type 4 – File Path */
- if (dpath->sub_type == 0x04) {
+ if (dpath->sub_type == 0x04
&& !p && path
) {
p = utf16_to_utf8(dpath->path, dpath->length-4);
continue;
}
p = utf16_to_utf8(dpath->path, dpath->length-4);
continue;
}