[Bug]: NullPointerException in PythonLocaleData.getLocaleData
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 70/100
調査の方向性
提供された re.search('A', '', 9999) スニペットでクラッシュを再現し、次に 81 行目の PythonLocaleData.java と、スタックトレースで示されている regex のエントリポイントを調査します。この入力に対するリグレッションカバレッジを追加し、NullPointerException なしで完了することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
GraalPy crashes when running this fuzzed code:
import re
re.search('A', '', 9999)
Operating system
Linux
CPU architecture
x86_64
GraalPy version
GraalPy 3.13.14 (Oracle GraalVM Native 25.3.4.1)
JDK version
No response
Context configuration
No response
Steps to reproduce
Snippet listed above
Expected behavior
No crash
Stack trace
java.lang.NullPointerException: Stack trace is imprecise, the top frames are missing and/or have wrong line numbers. To get precise stack traces, build the image with option -H:-ReduceImplicitExceptionStackTraceInformation
at com.oracle.truffle.regex/com.oracle.truffle.regex.flavor.python.PythonLocaleData.getLocaleData(PythonLocaleData.java:81)
at com.oracle.truffle.regex/com.oracle.truffle.regex.flavor.python.PythonRegexLexer.getLocaleData(PythonRegexLexer.java:198)
at com.oracle.truffle.regex/com.oracle.truffle.regex.flavor.python.PythonRegexLexer.caseFoldUnfold(PythonRegexLexer.java:348)
at com.oracle.truffle.regex/com.oracle.truffle.regex.flavor.python.PythonRegexParser.literalChar(PythonRegexParser.java:315)
at com.oracle.truffle.regex/com.oracle.truffle.regex.flavor.python.PythonRegexParser.parse(PythonRegexParser.java:244)
at com.oracle.truffle.regex/com.oracle.truffle.regex.tregex.TRegexCompilationRequest.parse(TRegexCompilationRequest.java:349)
at com.oracle.truffle.regex/com.oracle.truffle.regex.tregex.TRegexCompilationRequest.compileInternal(TRegexCompilationRequest.java:159)
at com.oracle.truffle.regex/com.oracle.truffle.regex.tregex.TRegexCompilationRequest.compile(TRegexCompilationRequest.java:143)
at com.oracle.truffle.regex/com.oracle.truffle.regex.tregex.TRegexCompiler.doCompile(TRegexCompiler.java:89)
at com.oracle.truffle.regex/com.oracle.truffle.regex.tregex.TRegexCompiler.compile(TRegexCompiler.java:75)
at com.oracle.truffle.regex/com.oracle.truffle.regex.RegexLanguage.createRegexObject(RegexLanguage.java:205)
at com.oracle.truffle.regex/com.oracle.truffle.regex.RegexLanguage.parse(RegexLanguage.java:164)
at org.graalvm.truffle/com.oracle.truffle.api.TruffleLanguage$ParsingRequest.parse(TruffleLanguage.java:1204)
at org.graalvm.truffle/com.oracle.truffle.api.TruffleLanguage.parse(TruffleLanguage.java:1618)
at org.graalvm.truffle/com.oracle.truffle.api.LanguageAccessor$LanguageImpl.parse(LanguageAccessor.java:309)
at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotSourceCache.parseImpl(PolyglotSourceCache.java:114)
at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotSourceCache$WeakCache.lookup(PolyglotSourceCache.java:351)
at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotSourceCache.parseCached(PolyglotSourceCache.java:94)
at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotLanguageContext.parseCached(PolyglotLanguageContext.java:377)
at org.graalvm.truffle/com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.parseForLanguage(EngineAccessor.java:332)
at org.graalvm.truffle/com.oracle.truffle.api.TruffleLanguage$Env.parseInternal(TruffleLanguage.java:2648)
at org.graalvm.py/com.oracle.graal.python.builtins.modules.re.TRegexCache.compile(TRegexCache.java:307)
at org.graalvm.py/com.oracle.graal.python.builtins.modules.re.PatternNodes$TRegexCompileNode.getCompiledRegexLocaleNonSensitive(PatternNodes.java:220)
at org.graalvm.py/com.oracle.graal.python.builtins.modules.re.PatternNodes$TRegexCompileNode.localeNonSensitive(PatternNodes.java:228)
at org.graalvm.py/com.oracle.graal.python.builtins.modules.re.PatternNodesFactory$TRegexCompileNodeGen.executeAndSpecialize(PatternNodesFactory.java:841)
at org.graalvm.py/com.oracle.graal.python.builtins.modules.re.PatternNodesFactory$TRegexCompileNodeGen.execute(PatternNodesFactory.java:752)
at org.graalvm.py/com.oracle.graal.python.builtins.modules.re.PatternBuiltins$NewNode.newPattern(PatternBuiltins.java:188)
at org.graalvm.py/com.oracle.graal.python.builtins.modules.re.PatternBuiltinsFactory$NewNodeFactory$NewNodeGen.execute(PatternBuiltinsFactory.java:248)
at org.graalvm.py/com.oracle.graal.python.nodes.function.builtins.BuiltinCallNode$BuiltinAnyCallNode.execute(BuiltinCallNode.java:64)
at org.graalvm.py/com.oracle.graal.python.nodes.function.BuiltinFunctionRootNode.execute(BuiltinFunctionRootNode.java:337)
[...snip...]
Additional context
No response
- 主要言語
- Python
- スター
- 1.7k
- フォーク
- 156
- 平均マージ
- 4時間 56分
- マージ済み PR(30日)
- 54
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
oracle/graalpython のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
oracle/graalpython#1105 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
oracle/graalpython#1102 ·
メンテナーはふだん 1 日以内に返信
-
zoneinfo.TZPATH is empty on POSIX: sysconfig TZPATH is not set対応中かも @graemerocher が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 15/100
oracle/graalpython#1206 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 44/100
oracle/graalpython#1198 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: invalid signature of int.__new__ and missing signatures for __new__ dunders in extensionsオープンbug
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
oracle/graalpython#1192 ·
メンテナーはふだん 1 日以内に返信
oracle/graalpython の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
aicell-lab/bioengine#232 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
modelscope/evalscope#1836 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
jbaruch/speaker-toolkit#480 ·
メンテナーはふだん 1 日以内に返信