S-H-GAMELINKS / Novel.Game.Engine.LINKS

ノベルゲームエンジン「LINKS」
Other
13 stars 1 forks source link

Fix/fix #5 #7

Closed yumetodo closed 7 years ago

yumetodo commented 7 years ago

5 の原因は、SerialNumberFileLoader 関数内の sprintf_s / snprintf 関数の第2引数に渡していた値が第1引数のbufferの大きさではないものになっており、buffer overrunが発生し、SerialNumberFileLoader 関数の引数が書き換えられたことによるものだった。 (451319cdfaad031a9f9dd88b2dfa65983ed4ef8a)

また、引数に countof マクロの結果を渡すのは冗長なので、C++のtemplateを利用して自動的に配列の大きさを求めるとともに、配列ではないものを渡せないようにした。(e9c21b000d2f31712ad1e539f4686ddfddd77884)

yumetodo commented 7 years ago

結論: 文字列操作をCでやるな、C++で https://github.com/fmtlib/fmt みたいなライブラリにやらせろ

というありきたりな結論しかないな、これ。

S-H-GAMELINKS commented 7 years ago

チェックさせていただきました。マージいたしますね。

やはり文字列操作をCでやるのはいささか厳しいですか……