]> granicus.if.org Git - php/commitdiff
Avoid directly adding to string literal
authorDavid Carlier <devnexen@gmail.com>
Mon, 13 Aug 2018 16:45:36 +0000 (17:45 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 21 Aug 2018 04:25:41 +0000 (06:25 +0200)
This fixes a Clang warning.

ext/standard/image.c

index 0a8add7e993d22e3d37073721883d80666635230..2aafad9f2a15f1aeeb5e1a078e0f53375eb175d5 100644 (file)
@@ -1229,6 +1229,7 @@ PHP_FUNCTION(image_type_to_extension)
 {
        zend_long image_type;
        zend_bool inc_dot=1;
+       const char *imgext = NULL;
 
        ZEND_PARSE_PARAMETERS_START(1, 2)
                Z_PARAM_LONG(image_type)
@@ -1238,38 +1239,57 @@ PHP_FUNCTION(image_type_to_extension)
 
        switch (image_type) {
                case IMAGE_FILETYPE_GIF:
-                       RETURN_STRING(".gif" + !inc_dot);
+                       imgext = ".gif";
+                       break;
                case IMAGE_FILETYPE_JPEG:
-                       RETURN_STRING(".jpeg" + !inc_dot);
+                       imgext = ".jpeg";
+                       break;
                case IMAGE_FILETYPE_PNG:
-                       RETURN_STRING(".png" + !inc_dot);
+                       imgext = ".png";
+                       break;
                case IMAGE_FILETYPE_SWF:
                case IMAGE_FILETYPE_SWC:
-                       RETURN_STRING(".swf" + !inc_dot);
+                       imgext = ".swf";
+                       break;
                case IMAGE_FILETYPE_PSD:
-                       RETURN_STRING(".psd" + !inc_dot);
+                       imgext = ".psd";
+                       break;
                case IMAGE_FILETYPE_BMP:
                case IMAGE_FILETYPE_WBMP:
-                       RETURN_STRING(".bmp" + !inc_dot);
+                       imgext = ".bmp";
+                       break;
                case IMAGE_FILETYPE_TIFF_II:
                case IMAGE_FILETYPE_TIFF_MM:
-                       RETURN_STRING(".tiff" + !inc_dot);
+                       imgext = ".tiff";
+                       break;
                case IMAGE_FILETYPE_IFF:
-                       RETURN_STRING(".iff" + !inc_dot);
+                       imgext = ".iff";
+                       break;
                case IMAGE_FILETYPE_JPC:
-                       RETURN_STRING(".jpc" + !inc_dot);
+                       imgext = ".jpc";
+                       break;
                case IMAGE_FILETYPE_JP2:
-                       RETURN_STRING(".jp2" + !inc_dot);
+                       imgext = ".jp2";
+                       break;
                case IMAGE_FILETYPE_JPX:
-                       RETURN_STRING(".jpx" + !inc_dot);
+                       imgext = ".jpx";
+                       break;
                case IMAGE_FILETYPE_JB2:
-                       RETURN_STRING(".jb2" + !inc_dot);
+                       imgext = ".jb2";
+                       break;
                case IMAGE_FILETYPE_XBM:
-                       RETURN_STRING(".xbm" + !inc_dot);
+                       imgext = ".xbm";
+                       break;
                case IMAGE_FILETYPE_ICO:
-                       RETURN_STRING(".ico" + !inc_dot);
+                       imgext = ".ico";
+                       break;
                case IMAGE_FILETYPE_WEBP:
-                       RETURN_STRING(".webp" + !inc_dot);
+                       imgext = ".webp";
+                       break;
+       }
+
+       if (imgext) {
+               RETURN_STRING(&imgext[!inc_dot]);
        }
 
        RETURN_FALSE;