Commit 4e0a7181 for libheif
commit 4e0a7181476bf2003029a5a482dc25572a919300
Author: Dirk Farin <dirk.farin@gmail.com>
Date: Fri Dec 26 00:17:33 2025 +0100
fix integer types when reading grid header
diff --git a/libheif/image-items/grid.cc b/libheif/image-items/grid.cc
index 41a14cc9..3bda1d52 100644
--- a/libheif/image-items/grid.cc
+++ b/libheif/image-items/grid.cc
@@ -60,22 +60,22 @@ Error ImageGrid::parse(const std::vector<uint8_t>& data)
"Grid image data incomplete"};
}
- m_output_width = ((data[4] << 24) |
- (data[5] << 16) |
- (data[6] << 8) |
- (data[7]));
+ m_output_width = ((static_cast<uint32_t>(data[4]) << 24) |
+ (static_cast<uint32_t>(data[5]) << 16) |
+ (static_cast<uint32_t>(data[6]) << 8) |
+ (static_cast<uint32_t>(data[7])));
- m_output_height = ((data[8] << 24) |
- (data[9] << 16) |
- (data[10] << 8) |
- (data[11]));
+ m_output_height = ((static_cast<uint32_t>(data[8]) << 24) |
+ (static_cast<uint32_t>(data[9]) << 16) |
+ (static_cast<uint32_t>(data[10]) << 8) |
+ (static_cast<uint32_t>(data[11])));
}
else {
- m_output_width = ((data[4] << 8) |
- (data[5]));
+ m_output_width = ((static_cast<uint32_t>(data[4]) << 8) |
+ (static_cast<uint32_t>(data[5])));
- m_output_height = ((data[6] << 8) |
- (data[7]));
+ m_output_height = ((static_cast<uint32_t>(data[6]) << 8) |
+ (static_cast<uint32_t>(data[7])));
}
return Error::Ok;