Closed yumetodo closed 7 years ago
SerialNumberFileLoader
sprintf_s
snprintf
また、引数に countof マクロの結果を渡すのは冗長なので、C++のtemplateを利用して自動的に配列の大きさを求めるとともに、配列ではないものを渡せないようにした。(e9c21b000d2f31712ad1e539f4686ddfddd77884)
countof
結論: 文字列操作をCでやるな、C++で https://github.com/fmtlib/fmt みたいなライブラリにやらせろ
というありきたりな結論しかないな、これ。
チェックさせていただきました。マージいたしますね。
やはり文字列操作をCでやるのはいささか厳しいですか……
5 の原因は、
SerialNumberFileLoader
関数内のsprintf_s
/snprintf
関数の第2引数に渡していた値が第1引数のbufferの大きさではないものになっており、buffer overrunが発生し、SerialNumberFileLoader
関数の引数が書き換えられたことによるものだった。 (451319cdfaad031a9f9dd88b2dfa65983ed4ef8a)また、引数に
countof
マクロの結果を渡すのは冗長なので、C++のtemplateを利用して自動的に配列の大きさを求めるとともに、配列ではないものを渡せないようにした。(e9c21b000d2f31712ad1e539f4686ddfddd77884)