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.
現在一部のmalloc()で
foo *bar = ( foo * ) malloc( buzz ) ;
という形で"buffバイト"のヒープを確保したあとそのポインタに対して
bar[ buzz ] ;
のように"buff個目の要素"としてアクセスしているため、fooが1バイト場合を除き要素の後ろの部分でオーバーフローが発生しています。
例)
buzz=5、fooが1要素当たり4バイトの場合、確保されたメモリは5バイトなのに対して bar[5] は 4*5=20 バイト目となる
foo *bar = ( foo * ) malloc( sizeof( foo ) * buzz ) ;
として正しいバイトを確保するように修正します。
また、charは1バイトが保証されているため変更せず
Bytefは現状1バイトのようですがその保証が有るのか確認できなかったためsizeof(Bytef)に
末尾の +64 は番兵のようなので変更せず
としました。