Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

AddressSanitizer: heap-use-after-free on addres xxx

オープン
#48 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
32/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
cpp
領域
backend

調査の方向性

TokenizerObj.decode() とエントリーポイント tokenizers_decode から開始し、ASan レポートのスタックフレーム HFTokenizer::Decode と比較します。並行デコード中の heap-use-after-free を再現し、関係する所有権またはスレッド処理の境界を特定します。呼び出し元に decode 呼び出しの直列化を要求することなく、再現プログラムが ASan の失敗を報告しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Asan messages:

READ of size 173 at 0x00766930acc0 thread T7
    #0 0x76a133ab38 in __interceptor_memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827
    #1 0x76a0e1a544 in tokenizers::HFTokenizer::Decode[abi:cxx11](std::vector<int, std::allocator<int> > const&) 


0x00766930acc0 is located 0 bytes inside of 173-byte region [0x00766930acc0,0x00766930ad6d)
freed by thread T0 here:
    #0 0x76a13a9fe8 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:127
    #1 0x76a0e1d654 in tokenizers_decode

previously allocated by thread T7 here:
    #0 0x76a13aa2f4 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x76a0e2abcc in alloc::str::join_generic_copy::h968362ed642e72e2

My solution:

TokenizerObj.decode() must be called in one thread.

主要言語
C++
スター
514
フォーク
132
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

mlc-ai/tokenizers-cpp のほかの issue

mlc-ai/tokenizers-cpp の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。