mirror of https://github.com/raysan5/raylib
[Image] Validate that ImageDrawRectangleRec is drawing entirely inside the image (#3264)
* Add a function to clone a sound and share data with another sound. * rename items based on feedback * PR Feedback, use custom unload for sound alias, not variant of normal sound unloading * sound_multi example * Validate that image rect drawing is inside the image so we don't overflow a buffer * remove files that should not have been added. * remove changes that should not have been * revert * adsfasdfsdfsdf
This commit is contained in:
parent
4fa66f2635
commit
21f5482e0d
|
@ -3284,6 +3284,20 @@ void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color)
|
|||
if (rec.width < 0) rec.width = 0;
|
||||
if (rec.height < 0) rec.height = 0;
|
||||
|
||||
// clamp the size the the image bounds
|
||||
if (rec.x + rec.width >= dst->width)
|
||||
rec.width = dst->width - rec.x;
|
||||
|
||||
if (rec.y + rec.height >= dst->height)
|
||||
rec.height = dst->height - rec.y;
|
||||
|
||||
// check if the rect is even inside the image
|
||||
if (rec.x > dst->width || rec.y > dst->height)
|
||||
return;
|
||||
|
||||
if (rec.x + rec.width < 0 || rec.y + rec.height < 0)
|
||||
return;
|
||||
|
||||
int sy = (int)rec.y;
|
||||
int sx = (int)rec.x;
|
||||
|
||||
|
|
Loading…
Reference in New Issue