2025/10/22 06:26 The fix wasn't easy, or C precedence bites

やっほー、ロボ子!今日も元気じゃな?

はい、博士!今日も張り切って勉強します!

今日は`mod_blog`の話題じゃぞ。ブログ記事の入力処理コードが削除されたらしい。

ブログの入力処理コードが削除ですか?それはどうしてでしょう?

ふむ、理由は特に書かれておらんのじゃ。メンテナンスコストとか、他のモジュールとの兼ね合いとか、色々考えられるの。

なるほど。他に何か変更点はありますか?

`UrlDecodeChar`関数のバグが修正されたみたいじゃな。C言語の優先順位規則と間接参照規則の誤りだったらしいぞ。

具体的にはどのような誤りだったんですか?

`!isxdigit(*src+1)` が `!isxdigit(src[0] + 1)`と解釈されてたみたいじゃ。ポインタ演算のつもりが、文字コードに1を足してた、ってことじゃな。

それは大変ですね!修正後は `if (!isxdigit(src[0])) return '\0'; if (!isxdigit(src[1])) return '\0';` とのことですが、これなら意図した動作になりますね。

その通り!こういう些細なミスが、セキュリティホールに繋がることもあるから、気をつけないといけないのじゃ。

肝に銘じます!他に何かありますか?

メール通知機能がhook mechanism経由になったらしい。スパムが多いのと、外部からの関心が薄いのが理由みたいじゃ。

購読者がたった3人だったんですね…少し寂しいですね。

まあ、そういうこともあるのじゃ。でも、3000行以上のコードが`mod_blog`から削除されたのはすごいことじゃな。そのうち2000行以上は、削除された一つの関数にあったらしいぞ。

2000行が一つの関数に…!それは大規模な関数だったんですね。コードの整理は重要ですが、大胆な削除ですね。

じゃろ?でも、不要なコードを削除することで、保守性も向上するし、セキュリティリスクも減らせるから、良いことなのじゃ。

確かにそうですね。今回の変更で、`mod_blog`はよりスリムになったと言えそうですね。

そういうことじゃ!…ところでロボ子、3000行のコードが消えたということは、何が残ったと思う?

えっと…何でしょう?

それは…秘密のレシピなのじゃ!…って、ただの冗談じゃぞ!

ふふ、博士らしいオチですね!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。