summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--QcomModulePkg/Library/avb/libavb/avb_slot_verify.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/QcomModulePkg/Library/avb/libavb/avb_slot_verify.c b/QcomModulePkg/Library/avb/libavb/avb_slot_verify.c
index b410fec3d6..62bf5f17f6 100644
--- a/QcomModulePkg/Library/avb/libavb/avb_slot_verify.c
+++ b/QcomModulePkg/Library/avb/libavb/avb_slot_verify.c
@@ -1417,10 +1417,13 @@ AvbSlotVerifyResult avb_slot_verify(AvbOps* ops,
if (has_system_partition(ops, ab_suffix)) {
slot_data->cmdline =
avb_strdup("root=PARTUUID=$(ANDROID_SYSTEM_PARTUUID)");
- if (slot_data->cmdline == NULL) {
- ret = AVB_SLOT_VERIFY_RESULT_ERROR_OOM;
- goto fail;
- }
+ } else {
+ // The |cmdline| field should be a NUL-terminated string.
+ slot_data->cmdline = avb_strdup("");
+ }
+ if (slot_data->cmdline == NULL) {
+ ret = AVB_SLOT_VERIFY_RESULT_ERROR_OOM;
+ goto fail;
}
} else {
/* Add options - any failure in append_options() is either an
@@ -1437,7 +1440,7 @@ AvbSlotVerifyResult avb_slot_verify(AvbOps* ops,
}
}
/* Substitute $(ANDROID_SYSTEM_PARTUUID) and friends. */
- if (slot_data->cmdline != NULL) {
+ if (slot_data->cmdline != NULL && avb_strlen(slot_data->cmdline) != 0) {
char* new_cmdline;
new_cmdline = sub_cmdline(
ops, slot_data->cmdline, ab_suffix, using_boot_for_vbmeta);