正式名称がわからない惣菜
rounds towards 0でいいみたいだけど、こっちのほうがいい数学的な根拠ってあるんだっけ https://users.rust-lang.org/t/is-i32-always-round-towards-0/78414/2
@teobot Rustで
let v: Vec<i32> = vec![1,2,3];
for i in v.iter().rev() {
//...
}
ってするとiがi32じゃなくて&i32になって面倒なんだけどいい回避策ない?
iじゃなくて&iとして受ければいいのか?変数宣言の&はパターンマッチの型コンストラクタみたいに働くってこと?
Rustで普通の関数の引数でパターンマッチするの、destruct用のletを書かずに済むくらいしか嬉しさがなさそうだけどなんか他にいいことあるんかな
テストコード用バイナリがpayloadだったとはいえ、直接的に突かれたのはリポジトリの中身と食い違っていうるtarballを信頼してしまっていた点なので、バイナリのレビューはあんまり意味なさそう
大本のレポートが一番詳しいっぽい https://www.openwall.com/lists/oss-security/2024/03/29/4
レポートによれば普通に悪意のあるバイナリ(簡単な加工+デコードによって中間payloadを生成している)なのでテストから参照されてたとしてもだめそう
このアカウントは、notestockで公開設定になっていません。
@koba789 指定したシグネチャに該当する関数を検索してくれるやつで、たとえば (Rust風に書くと) `(&mut Vec<T>, &[T])` とか `(&mut Vec<T>, Iterator<T>)` みたいな指定で extend_slice とか extend を出してほしい
@koba789 trait経由だとdocs.rsの左側に出ないから分からんというのもあるし、常識的に考えて存在してるが名前が分からないだけの関数を探すためにわざわざリファレンスを通読したくないというのもある
@teobot Rustで0, 3, 6, 9, ...みたいに一定の間隔で数値をループしたいときはどうするのが一番いい?
あちこちにas usizeとかas i32とか書きまくるの、HaskellのfromIntegralみがある
このアカウントは、notestockで公開設定になっていません。
このポストが正しければx86_64用のRPMをビルドしている時に限ってビルドスクリプトを改変し、悪意のあるオブジェクトファイルをリンクするというものなのでMacは影響を受けなさそうだと思うけど https://www.openwall.com/lists/oss-security/2024/03/29/4
@teobot sed "1i # 0 \"$top_srcdir/src/liblzma/check/crc32_fast.c\"" って何をするコマンド?
gccがstdinからソースコードを受け取るとき `# 0 (filename)` が先頭にあると何か特別なことをする?
#line ディレクティブ相当の機能があるらしい https://stackoverflow.com/questions/31871307/how-can-i-set-the-file-name-if-i-run-cpp-gnu-c-preprocessor-from-stdin
このアカウントは、notestockで公開設定になっていません。
@teobot Rustで Vec<Option<T>> から Vec<T> に変換するのってどうするのがいい?