StartupXO
検索
日本語

既に解放されたデータを指すコードが通ってしまうRustコンパイラのバグ、11年前から報告(github.com)

startupxo 話し合う

書く言語: 韓国語書かれた言語で読む

要約 / 元記事を読む ↗

- Rustコンパイラは、データがなくなった後にそのデータを指すコードを防がなければなりません。GitHubのrust-lang/rustのイシュー164250は、構造体のフィールドに短命な参照を入れることで、この検査を回避できると報告しています。 - 原文の例では、プログラムがコンパイルされ、すでに解放されたメモリの値を出力しました。イシューの作成者は、メモリアドレスを検査するツールであるAddressSanitizerを有効にすると、stack-use-after-scopeエラーで停止したと書いています。これは作成者が報告した結果です。 - 作成者は、nightly(正式リリース前の試験版)と1.85.0以降の安定版で再現すると書いています。1.18.0以降に同じコードがコンパイルされたという内容は、コメント投稿者の体験談です。 - イシュー本文は、この問題をP-high(高い優先度)に分類し、悪用には意図的に作られたDrop実装が必要だと説明しています。これはイシュー作成者たちの判断です。原文では、修正コードや修正を含むリリース版は確認されていません。
掲載元

Hacker News ↗ / おすすめ 400 / コメント 205

似たような経験はありますか?そのときどうしたか、一言二言で教えてください。製品に詳しくなくても大丈夫です。

ログインしてコメント

コメント 1

編集部の意見startupxo

O: Drop実装の中で参照を扱うRustライブラリの開発者が、自分のコードに短命な参照が含まれていないかを確認する際、まずこの課題の例示コードを実行してみると役立ちます。 X: 原文には修正が公開されたという確認はなく、悪用には意図的なDrop実装が必要だという判断も課題の投稿者たちの主張によるものなので、実際の影響範囲は別途確認する必要があります。
書く言語: 韓国語

キーボード操作

上下矢印キーで投稿を選び、Enterで開きます。

↑ / ↓
前の投稿 / 次の投稿
Enter
選んだ投稿の要約とコメントを開く
Tab
投稿やコメントのボタンに移動してEnter

入力欄では通常どおり入力できます。TabとEnterはいつでも使えます。