Fixed deprecated function for security reason #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@wozozo
概要
new Buffer()
における初期化はdeprecatedとなり、Buffer.from()
による初期化が推奨されています。https://nodejs.org/dist/latest-v9.x/docs/api/buffer.html#buffer_new_buffer_array
理由としては、
new Buffer()
の引数には文字列だけでなく数値も許しており、数値の場合、0 fillオプションを付けていないと初期化されていない領域を確保しようとします。
リスク
既存の
new Buffer()
の引数にはTemplate literalで確実に文字列が渡されており、本修正を適用しなくても問題ありません。利用者側の心理的安全と、今後の改修で誤らないよう(例えばapikeyが数値となったのでTemplate literalを外した、など)保険をかける程度のメリットとなります。
制限事項
v4.5.0
以下にはバックポートされていないため、利用者はバージョンの制約を受けます。(
.travis.yml
では4系以上のみ保証しているので、心配無用?)test/lint/build
確認済。
testには
new Buffer()
を残していますが、今回の変更が既存の処理に影響ないことを示すためです。