Fix Undefined Behavior Around Enums am: 7f028d25c8

Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/12404605

Change-Id: If5509b1909d499ba484e6697895458957a03c923
This commit is contained in:
John W. Bruce
2020-08-19 19:11:33 +00:00
committed by Automerger Merge Worker
2 changed files with 25 additions and 22 deletions

View File

@@ -34,7 +34,7 @@ using CdmProvisioningResponse = std::string;
using CdmUsageTableHeader = std::string;
using CdmUsageEntry = std::string;
enum CdmKeyRequestType {
enum CdmKeyRequestType : uint32_t {
kKeyRequestTypeUnknown,
kKeyRequestTypeInitial,
kKeyRequestTypeRenewal,
@@ -43,13 +43,13 @@ enum CdmKeyRequestType {
kKeyRequestTypeUpdate,
};
enum CdmOfflineLicenseState {
enum CdmOfflineLicenseState : int32_t {
kLicenseStateActive,
kLicenseStateReleasing,
kLicenseStateUnknown,
};
enum CdmResponseType {
enum CdmResponseType : int32_t {
NO_ERROR = 0,
UNKNOWN_ERROR = 1,
KEY_ADDED = 2,
@@ -421,7 +421,7 @@ enum CdmResponseType {
// * android/include_hidl/mapErrors-inl.h
};
enum CdmKeyStatus {
enum CdmKeyStatus : int32_t {
kKeyStatusKeyUnknown,
kKeyStatusUsable,
kKeyStatusExpired,
@@ -432,7 +432,7 @@ enum CdmKeyStatus {
};
using CdmKeyStatusMap = std::map<KeyId, CdmKeyStatus>;
enum CdmLicenseType {
enum CdmLicenseType : int32_t {
kLicenseTypeOffline,
kLicenseTypeStreaming,
kLicenseTypeRelease,
@@ -446,48 +446,51 @@ enum CdmLicenseType {
// on code review comments from go/wvgerrit/41860 this license type should not
// be added. This type can be removed once it is no longer needed by
// GenerateKeyRequest.
kLicenseTypeEmbeddedKeyData
kLicenseTypeEmbeddedKeyData,
};
enum CdmLicenseKeyType { kLicenseKeyTypeContent, kLicenseKeyTypeEntitlement };
enum CdmLicenseKeyType : int32_t {
kLicenseKeyTypeContent,
kLicenseKeyTypeEntitlement,
};
enum SecurityLevel { kLevelDefault, kLevel3 };
enum SecurityLevel : uint32_t { kLevelDefault, kLevel3 };
enum CdmSecurityLevel {
enum CdmSecurityLevel : int32_t {
kSecurityLevelUninitialized,
kSecurityLevelL1,
kSecurityLevelL2,
kSecurityLevelL3,
kSecurityLevelUnknown
kSecurityLevelUnknown,
};
enum CdmCertificateType {
enum CdmCertificateType : int32_t {
kCertificateWidevine,
kCertificateX509,
};
enum CdmHlsMethod {
enum CdmHlsMethod : int32_t {
kHlsMethodNone,
kHlsMethodAes128,
kHlsMethodSampleAes,
};
enum CdmCipherMode {
enum CdmCipherMode : int32_t {
kCipherModeCtr,
kCipherModeCbc,
};
enum CdmEncryptionAlgorithm {
enum CdmEncryptionAlgorithm : int32_t {
kEncryptionAlgorithmUnknown,
kEncryptionAlgorithmAesCbc128
kEncryptionAlgorithmAesCbc128,
};
enum CdmSigningAlgorithm {
enum CdmSigningAlgorithm : int32_t {
kSigningAlgorithmUnknown,
kSigningAlgorithmHmacSha256
kSigningAlgorithmHmacSha256,
};
enum CdmClientTokenType {
enum CdmClientTokenType : int32_t {
kClientTokenKeybox,
kClientTokenDrmCert,
kClientTokenOemCert,
@@ -500,13 +503,13 @@ enum CdmClientTokenType {
// persisted in non-secure storage but are loaded and unloaded from
// the TEE during use (OEMCrypto v13+)
// kUnknownUsageSupport - usage support type is uninitialized or unavailable
enum CdmUsageSupportType {
enum CdmUsageSupportType : int32_t {
kNonSecureUsageSupport,
kUsageEntrySupport,
kUnknownUsageSupport,
};
enum CdmUsageEntryStorageType {
enum CdmUsageEntryStorageType : int32_t {
kStorageLicense,
kStorageUsageInfo,
kStorageTypeUnknown,
@@ -546,7 +549,7 @@ struct CdmUsageEntryInfo {
}
};
enum CdmKeySecurityLevel {
enum CdmKeySecurityLevel : int32_t {
kKeySecurityLevelUnset,
kSoftwareSecureCrypto,
kSoftwareSecureDecode,

View File

@@ -233,7 +233,7 @@ TEST_F(WvCdmEngineMetricsImplTest, GenerateKeyRequest) {
}
TEST_F(WvCdmEngineMetricsImplTest, AddKey) {
CdmLicenseType license_type;
CdmLicenseType license_type = {};
CdmKeySetId key_set_id;
EXPECT_CALL(*test_cdm_metrics_engine_,