Static analysis fix: division by zero.
authorRyan C. Gordon <icculus@icculus.org>
Wed, 19 Mar 2014 18:25:21 -0400
changeset 8643 a0500498afee
parent 8642 3506de54b829
child 8644 f218b4e65498
Static analysis fix: division by zero.
src/render/SDL_yuv_sw.c
--- a/src/render/SDL_yuv_sw.c	Wed Mar 19 16:55:38 2014 -0400
+++ b/src/render/SDL_yuv_sw.c	Wed Mar 19 18:25:21 2014 -0400
@@ -1274,11 +1274,16 @@
                     Uint32 target_format, int w, int h, void *pixels,
                     int pitch)
 {
+    const int targetbpp = SDL_BYTESPERPIXEL(target_format);
     int stretch;
     int scale_2x;
     Uint8 *lum, *Cr, *Cb;
     int mod;
 
+    if (targetbpp == 0) {
+        return SDL_SetError("Invalid target pixel format");
+    }
+
     /* Make sure we're set up to display in the desired format */
     if (target_format != swdata->target_format) {
         if (SDL_SW_SetupYUVDisplay(swdata, target_format) < 0) {
@@ -1366,7 +1371,7 @@
     default:
         return SDL_SetError("Unsupported YUV format in copy");
     }
-    mod = (pitch / SDL_BYTESPERPIXEL(target_format));
+    mod = (pitch / targetbpp);
 
     if (scale_2x) {
         mod -= (swdata->w * 2);