アカウント名:
パスワード:
"convert %s %s" の長さが sizeof(buf) 以上だった場合に終端に \0 がつかないとか? そんなことないか。
convert が絶対パス指定でないところとか? これは致命的っぽい。
シェルがどんな解釈をするかもわからない system() よりも、 確実に対象を実行する exec 系関数を使った方がいいとか? これは神経質になりすぎ
でも、argv をいじれる人は、もともと任意のコマンドの実行権限を持ってるんじゃないの? これがCGIとか、setuidされてるとかなら問題になるんだろうけど。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
C言語で書かれてもさっぱりわからん (スコア:0, 興味深い)
と思ったのは僕だけ?
どの辺が汚いコードだったのかを (スコア:0)
他の人達も書いてるけど、綺麗な分類に入ると思いますコレ。
っていうかコレを汚いと思った人の開発歴とかを知りたい。マヂで。
職場で若手や新人の視点の考察材料にしたいから。
Re:どの辺が汚いコードだったのかを (スコア:2, おもしろおかしい)
Re:どの辺が汚いコードだったのかを (スコア:0)
snprintf(buf, sizeof(buf), "convert %s %s", fromfile, tofile);
system(buf);
とかやるな とかですかね?
まぁ汚い”コード”ではないし,コンテストの趣旨からして
本質じゃないと思いますけど.
(Cともあんま関係ないし.)
読みにくくしておかないとすぐバレル (スコア:0)
これが難読化手法といって解析を防ぐテクニックなのですよ
#本気だか冗談だかよくわからんな
Re:どの辺が汚いコードだったのかを (スコア:0)
"convert %s %s" の長さが sizeof(buf) 以上だった場合に終端に \0 がつかないとか?
そんなことないか。
convert が絶対パス指定でないところとか?
これは致命的っぽい。
シェルがどんな解釈をするかもわからない system() よりも、
確実に対象を実行する exec 系関数を使った方がいいとか?
これは神経質になりすぎ
Re:どの辺が汚いコードだったのかを (スコア:0)
> そんなことないか。
snprintf()なんて初めて見たんですが、strncpy()とかの仕様を考えると
確かに\0が無いとかを疑っちゃいますね。
Re:どの辺が汚いコードだったのかを (スコア:0)
Re:どの辺が汚いコードだったのかを (スコア:0)
思いっきり main() で convertTo(argv[1], WORKFILE) なんてやってますね。
(fromfileとtofileはconvertToの仮引数)
でも、argv をいじれる人は、もともと任意のコマンドの実行権限を持ってるんじゃないの?
これがCGIとか、setuidされてるとかなら問題になるんだろうけど。
Re:どの辺が汚いコードだったのかを (スコア:0)
配列名の頭に"@"がついてない
関数名の頭に"&"がついてない
こんなの読めたもんじゃない。
(ぇ