タグ

バグとphpに関するrryuのブックマーク (3)

  • SJIS-macに変換したはずなのにSJIS-winになる - Qiita

    $utf8Str = "❶❷❸❹❺"; $sjisStr = mb_convert_encoding($utf8Str, 'SJIS-mac'); echo(mb_detect_encoding($sjisStr, ['UTF-8','SJIS-mac', 'SJIS-win', 'SJIS'])); // SJIS-win ← SJIS-macに変換したはずなのに、何故かSJIS-winと判定されてしまいます。 そもそもSJIS-macってなんだよって話ですが、単にMacJapaneseのエイリアスです。 従ってMacJapaneseと書いても同じく、正しく誤判定されます。 そしてコメント欄にThis is a bug in PHP's mbstring extension『mbstringエクステンションのバグじゃよ』という人が現れています。 間違ったコードを書いたときに自分のせいでは

    SJIS-macに変換したはずなのにSJIS-winになる - Qiita
    rryu
    rryu 2020/09/29
    文字列によってはそうなると思ったら、丸付き数字の文字コードはSJIS-winとSJIS-macで異なるのになぜかSJISでもなくSJIS-winと判定されるというバグなのか。
  • PHPの足し算のバグ - てきとうなメモ

    PHP :: Bug #61095 :: PHP can't add hex numbers via はじめてのにき(2012-02-25) $ php -r 'echo (0x00+2);echo "\n";' 4 $ php -r 'echo (0x00+ 2);echo "\n";' 2 $ php -r 'echo (0x00 + 2);echo "\n";' 2 $ php -r 'echo (0x00 +2);echo "\n";' 4 $ php -v PHP 5.3.8 (cli) (built: Dec 5 2011 21:24:09) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologiesなかなか面白い。以下のpatchでもうf

    PHPの足し算のバグ - てきとうなメモ
    rryu
    rryu 2012/02/28
    0のみからなる16進数値リテラルをパースする際に字句境界を超えてパースしてしまうバグ。そういえば前にもstrtod()をそのまま使っているが故の不思議な挙動の話があったような。
  • PHP5.3.7のcrypt関数のバグはこうして生まれた

    昨日のブログエントリ「PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)」にて、crypt関数の重大な脆弱性について報告しました。脆弱性の出方が近年まれに見るほどのものだったので、twitterやブクマなどを見ても、「どうしてこうなった」という疑問を多数目にしました。 そこで、このエントリでは、この脆弱性がどのように混入したのかを追ってみたいと思います。 PHPのレポジトリのログや公開されているソースの状況から、PHP5.3.7RC4までこのバグはなく、PHP5.3.7RC5でこのバグが混入した模様です。RC5はPHP5.3.7最後のRelease Candidateですから、まさに正式リリースの直前でバグが入ったことになります。 バグの入る直前のソースは、ここの関数php_md5_crypt_rから参照することができます。以下に、おおまかな流れを図示します。まずはバ

    PHP5.3.7のcrypt関数のバグはこうして生まれた
    rryu
    rryu 2011/08/24
    そもそもmem系とstr系の関数を混ぜて使わなければ、mem系のみ=起こらない、str系のみ=区切りの$が無くなるだけで、こんなインパクトの強い結果にはならなかったのに。
  • 1