瀏覽代碼

Revert checks on destination scaling size (see bug #5510)

Sylvain Becker 4 年之前
父節點
當前提交
9d70711342
共有 2 個文件被更改,包括 6 次插入4 次删除
  1. 3 2
      src/video/SDL_stretch.c
  2. 3 2
      src/video/SDL_surface.c

+ 3 - 2
src/video/SDL_stretch.c

@@ -94,8 +94,9 @@ SDL_UpperSoftStretch(SDL_Surface * src, const SDL_Rect * srcrect,
         return 0;
         return 0;
     }
     }
 
 
-    if (srcrect->w > SDL_MAX_UINT16 || srcrect->h > SDL_MAX_UINT16) {
-        return SDL_SetError("Source size too large for scaling");
+    if (srcrect->w > SDL_MAX_UINT16 || srcrect->h > SDL_MAX_UINT16 ||
+        dstrect->w > SDL_MAX_UINT16 || dstrect->h > SDL_MAX_UINT16) {
+        return SDL_SetError("Size too large for scaling");
     }
     }
 
 
     /* Lock the destination if it's in hardware */
     /* Lock the destination if it's in hardware */

+ 3 - 2
src/video/SDL_surface.c

@@ -931,8 +931,9 @@ SDL_PrivateLowerBlitScaled(SDL_Surface * src, SDL_Rect * srcrect,
         SDL_COPY_COLORKEY
         SDL_COPY_COLORKEY
     );
     );
 
 
-    if (srcrect->w > SDL_MAX_UINT16 || srcrect->h > SDL_MAX_UINT16) {
-        return SDL_SetError("Source size too large for scaling");
+    if (srcrect->w > SDL_MAX_UINT16 || srcrect->h > SDL_MAX_UINT16 ||
+        dstrect->w > SDL_MAX_UINT16 || dstrect->h > SDL_MAX_UINT16) {
+        return SDL_SetError("Size too large for scaling");
     }
     }
 
 
     if (!(src->map->info.flags & SDL_COPY_NEAREST)) {
     if (!(src->map->info.flags & SDL_COPY_NEAREST)) {