そのbufの指す領域はNULLで終わっているか?
文字列として扱う領域の途中に、余分なNULLが
入っていないか?