fgetsに指定するバッファがsscanfに指定するバッファより大きいことが原因。
バッファをすべて1025に変更する。
fgetsではsizeof(buff)で読み込む。
これでsscanfはbuff内に収まる。
sprintfはwsprintfにする。
fgets(buff,1025,fp)
1024を超える場合は1025バイト目に終端を書き込む。
(buff[1024]==0になる)
wsprintf(buff,format,...)
1024を超える場合は1025バイト目に終端を書き込む。
(buff[1024]==0になる)
パスを扱うバッファを1025で定義してwsprintfを使うようにすれば
とりあえずバッファオーバーは防げる。