引数はスタックに積まれてると printf さんは思ってるので
buf の中に %x とかがあると、ガンガンスタックを巻き戻して
buf 自身を参照しはじめます(何を言ってるかわからない)
( '-') ./a.out %x %x %x %x %x %x %x ffffd4c7 270f f7e3439d f7faa3c4 25ffd000 78252078 20782520
0x78252078 は "x %x" です
printf のフォーマット文字列と引数の両方をコントロールできてる状態