ODK: Fix a few implict type conversion issues
(This is a merge of http://go/wvgerrit/134403.) Reported as errors by UBSAN Bug: 194971260 Test: Ran ODK unit tests Change-Id: I2f38fb6952d259458af8498e86b3308421e93320
This commit is contained in:
@@ -52,25 +52,25 @@ void Pack_bool(ODK_Message* message, const bool* value) {
|
||||
void Pack_uint16_t(ODK_Message* message, const uint16_t* value) {
|
||||
assert(value);
|
||||
uint8_t data[2] = {0};
|
||||
data[0] = *value >> 8;
|
||||
data[1] = *value >> 0;
|
||||
data[0] = (uint8_t)(*value >> 8);
|
||||
data[1] = (uint8_t)(*value >> 0);
|
||||
PackBytes(message, data, sizeof(data));
|
||||
}
|
||||
|
||||
void Pack_uint32_t(ODK_Message* message, const uint32_t* value) {
|
||||
assert(value);
|
||||
uint8_t data[4] = {0};
|
||||
data[0] = *value >> 24;
|
||||
data[1] = *value >> 16;
|
||||
data[2] = *value >> 8;
|
||||
data[3] = *value >> 0;
|
||||
data[0] = (uint8_t)(*value >> 24);
|
||||
data[1] = (uint8_t)(*value >> 16);
|
||||
data[2] = (uint8_t)(*value >> 8);
|
||||
data[3] = (uint8_t)(*value >> 0);
|
||||
PackBytes(message, data, sizeof(data));
|
||||
}
|
||||
|
||||
void Pack_uint64_t(ODK_Message* message, const uint64_t* value) {
|
||||
assert(value);
|
||||
uint32_t hi = *value >> 32;
|
||||
uint32_t lo = *value;
|
||||
uint32_t hi = (uint32_t)(*value >> 32);
|
||||
uint32_t lo = (uint32_t)(*value);
|
||||
Pack_uint32_t(message, &hi);
|
||||
Pack_uint32_t(message, &lo);
|
||||
}
|
||||
@@ -104,7 +104,7 @@ static void UnpackBytes(ODK_Message* message, uint8_t* ptr, size_t count) {
|
||||
int Unpack_enum(ODK_Message* message) {
|
||||
uint32_t v32;
|
||||
Unpack_uint32_t(message, &v32);
|
||||
return v32;
|
||||
return (int)v32;
|
||||
}
|
||||
|
||||
void Unpack_bool(ODK_Message* message, bool* value) {
|
||||
|
||||
Reference in New Issue
Block a user