]> granicus.if.org Git - php/commitdiff
Check mbfl_filt_put_invalid_char return value
authorNikita Popov <nikic@php.net>
Sat, 18 Jul 2015 19:24:28 +0000 (21:24 +0200)
committerNikita Popov <nikic@php.net>
Sat, 18 Jul 2015 19:53:03 +0000 (21:53 +0200)
And fix some libmbfl warnings

ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_mobile.c
ext/mbstring/libmbfl/filters/mbfilter_utf8.c
ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c

index a5260807d42741f76151ef604f7374b9f94b338e..e0d5543882c03e189e3acf155246a4b2a2c87eca 100644 (file)
@@ -48,7 +48,7 @@ const mbfl_encoding mbfl_encoding_2022jp_kddi = {
        mbfl_no_encoding_2022jp_kddi,
        "ISO-2022-JP-MOBILE#KDDI",
        "ISO-2022-JP",
-       mbfl_encoding_2022jp_kddi_aliases,
+       &mbfl_encoding_2022jp_kddi_aliases,
        NULL,
        MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE | MBFL_ENCTYPE_GL_UNSAFE
 };
index a9c141bbfe056554315754f303d7f0392f0e7b46..e81e0860d22bcdd8ffc2e4af5e0fdc2245470006 100644 (file)
@@ -101,6 +101,7 @@ int mbfl_filt_put_invalid_char(int c, mbfl_convert_filter *filter)
        filter->status = 0;
        filter->cache = 0;
        CK((*filter->output_function)(w, filter->data));
+       return 0;
 }
 
 
@@ -109,7 +110,7 @@ int mbfl_filt_put_invalid_char(int c, mbfl_convert_filter *filter)
  */
 int mbfl_filt_conv_utf8_wchar(int c, mbfl_convert_filter *filter)
 {
-       int s, c1, w = 0, flag = 0;
+       int s, c1;
 
 retry:
        switch (filter->status & 0xff) {
@@ -126,7 +127,7 @@ retry:
                        filter->status = 0x30;
                        filter->cache = c & 0x7;
                } else {
-                       mbfl_filt_put_invalid_char(c, filter);
+                       CK(mbfl_filt_put_invalid_char(c, filter));
                }
                break;
        case 0x10: /* 2byte code 2nd char: 0x80-0xbf */
@@ -138,7 +139,7 @@ retry:
                        filter->cache = 0;
                        CK((*filter->output_function)(s, filter->data));
                } else {
-                       mbfl_filt_put_invalid_char(filter->cache, filter);
+                       CK(mbfl_filt_put_invalid_char(filter->cache, filter));
                        goto retry;
                }
                break;
@@ -153,7 +154,7 @@ retry:
                        filter->cache = s;
                        filter->status++;
                } else {
-                       mbfl_filt_put_invalid_char(filter->cache, filter);
+                       CK(mbfl_filt_put_invalid_char(filter->cache, filter));
                        goto retry;
                }
                break;
@@ -168,7 +169,7 @@ retry:
                        filter->cache = s;
                        filter->status++;
                } else {
-                       mbfl_filt_put_invalid_char(filter->cache, filter);
+                       CK(mbfl_filt_put_invalid_char(filter->cache, filter));
                        goto retry;
                }
                break;
@@ -177,7 +178,7 @@ retry:
                        filter->cache = (filter->cache<<6) | (c & 0x3f);
                        filter->status++;
                } else {
-                       mbfl_filt_put_invalid_char(filter->cache, filter);
+                       CK(mbfl_filt_put_invalid_char(filter->cache, filter));
                        goto retry;
                }
                break;
@@ -200,7 +201,7 @@ int mbfl_filt_conv_utf8_wchar_flush(mbfl_convert_filter *filter)
        filter->cache = 0;
 
        if (status != 0) {
-               mbfl_filt_put_invalid_char(cache, filter);
+               CK(mbfl_filt_put_invalid_char(cache, filter));
        }
 
        if (filter->flush_function != NULL) {
index c449d3132a91b3343b0c733f4a91f122e9db2ce0..41e02bf3149dc390531bdd5a70e0552fed0e1b9e 100644 (file)
@@ -183,14 +183,14 @@ const struct mbfl_convert_vtbl vtbl_wchar_utf8_sb = {
 };
 
 #define CK(statement)  do { if ((statement) < 0) return (-1); } while (0)
+int mbfl_filt_put_invalid_char(int c, mbfl_convert_filter *filter);
 
 /*
  * UTF-8 => wchar
  */
 int mbfl_filt_conv_utf8_mobile_wchar(int c, mbfl_convert_filter *filter)
 {
-       int s, w = 0, flag = 0;
-       int s1 = 0, c1 = 0, snd = 0;
+       int s, s1 = 0, c1 = 0, snd = 0;
 
 retry:
        switch (filter->status & 0xff) {
@@ -207,7 +207,7 @@ retry:
                        filter->status = 0x30;
                        filter->cache = c & 0x7;
                } else {
-                       mbfl_filt_put_invalid_char(c, filter);
+                       CK(mbfl_filt_put_invalid_char(c, filter));
                }
                break;
        case 0x10: /* 2byte code 2nd char: 0x80-0xbf */
@@ -237,7 +237,7 @@ retry:
                        }
                        CK((*filter->output_function)(s, filter->data));
                } else {
-                       mbfl_filt_put_invalid_char(filter->cache, filter);
+                       CK(mbfl_filt_put_invalid_char(filter->cache, filter));
                        goto retry;
                }
                break;
@@ -252,7 +252,7 @@ retry:
                        filter->cache = s;
                        filter->status++;
                } else {
-                       mbfl_filt_put_invalid_char(filter->cache, filter);
+                       CK(mbfl_filt_put_invalid_char(filter->cache, filter));
                        goto retry;
                }
                break;
@@ -267,7 +267,7 @@ retry:
                        filter->cache = s;
                        filter->status++;
                } else {
-                       mbfl_filt_put_invalid_char(filter->cache, filter);
+                       CK(mbfl_filt_put_invalid_char(filter->cache, filter));
                        goto retry;
                }
                break;
@@ -276,7 +276,7 @@ retry:
                        filter->cache = (filter->cache<<6) | (c & 0x3f);
                        filter->status++;
                } else {
-                       mbfl_filt_put_invalid_char(filter->cache, filter);
+                       CK(mbfl_filt_put_invalid_char(filter->cache, filter));
                        goto retry;
                }
                break;