summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward O'Callaghan <quasisec@chromium.org>2023-05-08 01:54:37 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-05-08 07:09:21 +0000
commitf029229daac8a4571be184641cb135ff9c59b6b0 (patch)
tree4c962ec5013f16c83dbb79241002f86d517b7efa
parentff86b93483c7d7b5b6991177068232f94b32e0de (diff)
downloadvboot-f029229daac8a4571be184641cb135ff9c59b6b0.tar.gz
Revert "vboot: update get system properties"
This reverts commit 8ef4f7a9a9a68bad49e8417d5ed346dc927e1d2c. Reason for revert: Installer supposedly misuses API with `VbGetSystemPropertyString("fw_try_next", NULL, 0);` by passing a `NULL` ptr as dest and so not sized. The call sites need checking. BUG=b:280417931 TEST=none Original change's description: > vboot: update get system properties > > `VbGetSystemPropertyString` header promises that the property string > will be read into the passed in dest buffer, however for some system > properties the values are not placed in buffer but returned directly. > this patch fixes that error > > Before, running `VbGetSystemPropertyString("minios_priority", buf, > size):` > ``` > buf: return value: B > ``` > After, same command: > ``` > buf: B return value: B > ``` > > BRANCH=none > BUG=none > TEST=Tested with an executable on brya > > Signed-off-by: Saketh Pothireddy <spothire@chromium.org> > > Change-Id: I87a0aa8638e719bc5bbea579ecaca4754a38c02e > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4468208 > Reviewed-by: Jae Hoon Kim <kimjae@chromium.org> > Reviewed-by: Julius Werner <jwerner@chromium.org> > Commit-Queue: Saketh Pothireddy <spothire@google.com> > Tested-by: Saketh Pothireddy <spothire@google.com> Bug: none Change-Id: Ie07363424db92832b485c9efae21edbf0d24fba5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4508974 Commit-Queue: Edward O'Callaghan <quasisec@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Edward O'Callaghan <quasisec@chromium.org>
-rw-r--r--host/lib/crossystem.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/host/lib/crossystem.c b/host/lib/crossystem.c
index 24449b91..a7b04b99 100644
--- a/host/lib/crossystem.c
+++ b/host/lib/crossystem.c
@@ -536,9 +536,9 @@ const char *VbGetSystemPropertyString(const char *name, char *dest, size_t size)
if (!strcasecmp(name,"kernkey_vfy")) {
switch(GetVdatInt(VDAT_INT_KERNEL_KEY_VERIFIED)) {
case 0:
- return StrCopy(dest, "hash", size);
+ return "hash";
case 1:
- return StrCopy(dest, "sig", size);
+ return "sig";
default:
return NULL;
}
@@ -548,35 +548,31 @@ const char *VbGetSystemPropertyString(const char *name, char *dest, size_t size)
return GetVdatString(dest, size,
VDAT_STRING_LOAD_FIRMWARE_DEBUG);
} else if (!strcasecmp(name, "fw_try_next")) {
- return StrCopy(dest, vb2_get_nv_storage(VB2_NV_TRY_NEXT) ?
- "B" : "A", size);
+ return vb2_get_nv_storage(VB2_NV_TRY_NEXT) ? "B" : "A";
} else if (!strcasecmp(name, "fw_tried")) {
- return StrCopy(dest, vb2_get_nv_storage(VB2_NV_FW_TRIED) ?
- "B" : "A", size);
+ return vb2_get_nv_storage(VB2_NV_FW_TRIED) ? "B" : "A";
} else if (!strcasecmp(name, "fw_result")) {
int v = vb2_get_nv_storage(VB2_NV_FW_RESULT);
if (v < ARRAY_SIZE(fw_results))
- return StrCopy(dest, fw_results[v], size);
+ return fw_results[v];
else
- return StrCopy(dest, "unknown", size);
+ return "unknown";
} else if (!strcasecmp(name, "fw_prev_tried")) {
- return StrCopy(dest, vb2_get_nv_storage(VB2_NV_FW_PREV_TRIED) ?
- "B" : "A", size);
+ return vb2_get_nv_storage(VB2_NV_FW_PREV_TRIED) ? "B" : "A";
} else if (!strcasecmp(name, "fw_prev_result")) {
int v = vb2_get_nv_storage(VB2_NV_FW_PREV_RESULT);
if (v < ARRAY_SIZE(fw_results))
- return StrCopy(dest, fw_results[v], size);
+ return fw_results[v];
else
- return StrCopy(dest, "unknown", size);
+ return "unknown";
} else if (!strcasecmp(name,"dev_default_boot")) {
int v = vb2_get_nv_storage(VB2_NV_DEV_DEFAULT_BOOT);
if (v < ARRAY_SIZE(default_boot))
- return StrCopy(dest, default_boot[v], size);
+ return default_boot[v];
else
- return StrCopy(dest, "unknown", size);
+ return "unknown";
} else if (!strcasecmp(name, "minios_priority")) {
- return StrCopy(dest, vb2_get_nv_storage(VB2_NV_MINIOS_PRIORITY)
- ? "B" : "A", size);
+ return vb2_get_nv_storage(VB2_NV_MINIOS_PRIORITY) ? "B" : "A";
}
return NULL;