Use Buffer slice will have wrong result when end is larger than int32.
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript, nodejs
- 領域
- backend
調査の方向性
報告された Buffer.from([1,2,3]).slice(1, Math.pow(2,32)) のケースを再現し、次にオフセットでビット単位の変換を使用している Buffer.slice の実装を追跡します。通常の slice の例とともに、より大きい終了値を対象とするリグレッションテストを追加し、結果に [2,3] が含まれることを確認します。
索引モデルが issue の本文から書いたものです。
説明
[1,2,3].slice(1,3) return [2, 3], it's ok.
Array.from( Buffer.from([1,2,3]).slice(1,3) ) return [2,3], it's ok.
Array.from( Buffer.from([1,2,3]).slice(1,Math.pow(2,32)) ) return [] , it's wrong result.
In node Buffer, there is comment:
// Use Math.trunc() to convert offset to an integer value that can be larger
// than an Int32. Hence, don't use offset | 0 or similar techniques.
In this package, Buffer use ~, can't work with larger than int32 number.
- 主要言語
- JavaScript
- スター
- 1.9k
- フォーク
- 260
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
feross/buffer のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 48/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
TheOdinProject/curriculum#31423 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
WGBH-MLA/dream-aapb#69 ·
-
難易度 1/5 1〜3時間 初心者へのやさしさ 78/100
Mintplex-Labs/anything-llm#6490 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 86/100
openlayers/ol-cesium#1364 ·