アルェ~(・3・)

char str[256] = {'\0'};
strncat(str, string1, 255);
strncat(str, "-->", 255);
strncat(str, string2, 255);

string1,string2は不定長の文字列。

これって256のバッファに最大で514バイト書き込まない?('A`)
LWのProxyPickerの抜粋なんだけど(;'A`)

----
strncat()ってstrに"足す"最大サイズの指定だよねぇ?('A`)
snprintf()だとstrに書き込む最大サイズの指定になるけど。

なので、snprintf(str, 255, "%s-->%s", string1, string2);が筋だと思うのだけれど、 LWの都合上それは出来ない箇所なので、何を使うにしろ消費されたサイズを随時計算していかないと駄目な気がする。
ちなみに、LW9.6ではstringにあたるアイテム名がサイズ無制限になったような気がするから、調子こいて名前に寿限無とか付けてると酷い事になりそうw

てか、7.5の頃はNumeric欄に膨大な桁の数値(長い文字)を入れると即死するんだよなぁ。
他にもバッファ長を無視した実装をしてそうな予感('з`)
本体自体は順次改善されてるだろうけど、周辺のプラグインはどうじゃろ。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック