From 1b6aaf23809fe7a8ece25dbbbd26f5b7b559ab67 Mon Sep 17 00:00:00 2001 From: Jeff Tinker Date: Tue, 14 Dec 2021 19:45:18 -0800 Subject: [PATCH] Make OTAKeyboxSupported handle the short buffer return code. Merge from go/wvgerrit/141469 bug: 206670307 Change-Id: Iea350ffd6ba10bfd434d5012cdb4cec211ff5fda --- .../cdm/core/src/oemcrypto_adapter_dynamic.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp b/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp index 6599a800..283040b0 100644 --- a/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp +++ b/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp @@ -1236,8 +1236,13 @@ class Adapter { if (!level1_.GenerateOTARequest) return false; size_t buffer_size = 500; // a large buffer. std::vector buffer(buffer_size); - return level1_.GenerateOTARequest(0, buffer.data(), &buffer_size, 0) != - OEMCrypto_ERROR_NOT_IMPLEMENTED; + OEMCryptoResult result = + level1_.GenerateOTARequest(0, buffer.data(), &buffer_size, 0); + if (result == OEMCrypto_ERROR_SHORT_BUFFER) { + buffer.resize(buffer_size); + result = level1_.GenerateOTARequest(0, buffer.data(), &buffer_size, 0); + } + return result == OEMCrypto_SUCCESS; } private: