diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-05-11 16:54:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-11 16:54:13 +0200 |
commit | 0b0beae097b887feec721297e33de15e139baafc (patch) | |
tree | cff9ec5da036c43fba381db1802ff49f4f063061 /core | |
parent | b5689309f629dc8a3a32ea29fb8a5ebfee272179 (diff) | |
parent | 34c1a2beaa8ae92a445b85458d3681f60cd5216f (diff) |
Merge pull request #60941 from timothyqiu/image-convert
Fix invalid memory usage when using `Image.convert`
Diffstat (limited to 'core')
-rw-r--r-- | core/io/image.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/core/io/image.cpp b/core/io/image.cpp index 661a9f7177..671a000e2c 100644 --- a/core/io/image.cpp +++ b/core/io/image.cpp @@ -436,7 +436,7 @@ static void _convert(int p_width, int p_height, const uint8_t *p_src, uint8_t *p const uint8_t *rofs = &p_src[((y * p_width) + x) * (read_bytes + (read_alpha ? 1 : 0))]; uint8_t *wofs = &p_dst[((y * p_width) + x) * (write_bytes + (write_alpha ? 1 : 0))]; - uint8_t rgba[4]; + uint8_t rgba[4] = { 0, 0, 0, 255 }; if (read_gray) { rgba[0] = rofs[0]; @@ -454,7 +454,7 @@ static void _convert(int p_width, int p_height, const uint8_t *p_src, uint8_t *p if (write_gray) { //TODO: not correct grayscale, should use fixed point version of actual weights - wofs[0] = uint8_t((uint16_t(rofs[0]) + uint16_t(rofs[1]) + uint16_t(rofs[2])) / 3); + wofs[0] = uint8_t((uint16_t(rgba[0]) + uint16_t(rgba[1]) + uint16_t(rgba[2])) / 3); } else { for (uint32_t i = 0; i < write_bytes; i++) { wofs[i] = rgba[i]; |