Mercurial > hg > orthanc
diff OrthancFramework/Sources/Images/ImageAccessor.cpp @ 5838:4b47151dea4c
fix crashes if handling very large images
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 16 Oct 2024 18:27:31 +0200 |
parents | f7adfb22e20e |
children |
line wrap: on
line diff
--- a/OrthancFramework/Sources/Images/ImageAccessor.cpp Mon Sep 30 10:22:12 2024 +0200 +++ b/OrthancFramework/Sources/Images/ImageAccessor.cpp Wed Oct 16 18:27:31 2024 +0200 @@ -139,7 +139,7 @@ return pitch_; } - unsigned int ImageAccessor::GetSize() const + size_t ImageAccessor::GetSize() const { return GetHeight() * GetPitch(); } @@ -165,7 +165,7 @@ { if (buffer_ != NULL) { - return buffer_ + y * pitch_; + return buffer_ + static_cast<size_t>(y) * static_cast<size_t>(pitch_); } else { @@ -184,7 +184,7 @@ if (buffer_ != NULL) { - return buffer_ + y * pitch_; + return buffer_ + static_cast<size_t>(y) * static_cast<size_t>(pitch_); } else { @@ -325,8 +325,8 @@ else { uint8_t* p = (buffer_ + - y * pitch_ + - x * GetBytesPerPixel()); + static_cast<size_t>(y) * static_cast<size_t>(pitch_) + + static_cast<size_t>(x) * static_cast<size_t>(GetBytesPerPixel())); if (readOnly_) {