]> granicus.if.org Git - php/commitdiff
Suppress shift UB in gd_itofx()
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 19 Jun 2019 14:42:17 +0000 (16:42 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 19 Jun 2019 15:27:09 +0000 (17:27 +0200)
There doesn't seem to be a corresponding upstream fix for this.

ext/gd/libgd/gd_interpolation.c

index 357cfa47bd7be314a3c781f9798ee8044de6e169..1ac67a9d129bdedc209395750a1e9d01e66e1328 100644 (file)
@@ -91,7 +91,7 @@ TODO:
    part of GD */
 typedef long gdFixed;
 /* Integer to fixed point */
-#define gd_itofx(x) ((x) << 8)
+#define gd_itofx(x) (long)((unsigned long)(x) << 8)
 
 /* Float to fixed point */
 #define gd_ftofx(x) (long)((x) * 256)
@@ -112,7 +112,7 @@ typedef long gdFixed;
 #define gd_mulfx(x,y) (((x) * (y)) >> 8)
 
 /* Divide a fixed by a fixed */
-#define gd_divfx(x,y) (((x) << 8) / (y))
+#define gd_divfx(x,y) ((long)((unsigned long)(x) << 8) / (y))
 
 typedef struct
 {