summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCheng-Han Yang <chenghan@google.com>2018-08-27 16:56:28 +0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2018-12-05 00:41:28 +0000
commit61d2349205f0a6fc61d0d03ee5c4efee162c26d7 (patch)
treebd9cd75d45c5ea33f9f89a9682ebb301139ef1c0
parent60458d14af4ff2cb432c4a1289daae0192a8b058 (diff)
downloadchrome-ec-61d2349205f0a6fc61d0d03ee5c4efee162c26d7.tar.gz
gsctool: Reject empty authorization code
Passing empty auth code causes cr50 to generate challenge instead of verifying the auth code. Change to return an error when the auth code is empty. BUG=b:112881027 TEST=make gsctool; manually test on DUT BRANCH=none [Before fix] localhost $ gsctool -a -r Challenge: <80 characters challenge string> (Wait for 10 seconds) localhost $ gsctool -a -r "" Processing response...RMA unlock succeeded. [After fix] localhost $ gsctool -a -r Challenge: <80 characters challenge string> (Wait for 10 seconds) localhost $ gsctool -a -r "" Empty response. Change-Id: Ifc2760176ff620dd45c5d62ced117c808ce1f111 Signed-off-by: Cheng-Han Yang <chenghan@google.com> Reviewed-on: https://chromium-review.googlesource.com/1192822 Commit-Ready: Cheng-Han Yang <chenghan@chromium.org> Tested-by: Cheng-Han Yang <chenghan@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/1359934 Reviewed-by: Cheng-Han Yang <chenghan@chromium.org> Reviewed-by: Chia-Hsiu Chang <chia-hsiu.chang@quanta.corp-partner.google.com> Reviewed-by: Marco Chen <marcochen@chromium.org> Tested-by: Chia-Hsiu Chang <chia-hsiu.chang@quanta.corp-partner.google.com> Commit-Queue: Chia-Hsiu Chang <chia-hsiu.chang@quanta.corp-partner.google.com>
-rw-r--r--extra/usb_updater/gsctool.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/extra/usb_updater/gsctool.c b/extra/usb_updater/gsctool.c
index d751cc0bc7..c180482b76 100644
--- a/extra/usb_updater/gsctool.c
+++ b/extra/usb_updater/gsctool.c
@@ -1854,6 +1854,12 @@ static void process_rma(struct transfer_descriptor *td, const char *authcode)
return;
}
+ if (!*authcode) {
+ printf("Empty response.\n");
+ exit(update_error);
+ return;
+ }
+
if (!strcmp(authcode, "disable")) {
printf("Disabling RMA mode\n");
send_vendor_command(td, VENDOR_CC_DISABLE_RMA, NULL, 0,