素朴な疑問だが、waveHeader構造体のメンバはちゃんとした値が入っているのかね。
取り敢えず、blockSizeが幾つになっているのか確認するところからだな。
つーか、通常fread()は失敗しないからdo-whileは要らんだろ。