Pointers should not be initialised by the function "calloc" if they are a member of a bigger data structure. Would you like to deal with an internal representation that is not all-bits-0?
http://c-faq.com/null/varieties.html
I recommend to assign a "0" to data elements like "buffer" in the functions "FLAC__bitreader_new" and "FLAC__bitwriter_new" separately.
http://flac.cvs.sourceforge.net/flac/flac/src/libFLAC/bitreader.c?revision=1.6&view=markup
http://flac.cvs.sourceforge.net/flac/flac/src/libFLAC/bitwriter.c?revision=1.8&view=markup
Are assignments for the data element "words" in the functions "FLAC__bitreader_init" and "FLAC__bitwriter_init" unnecassary in this context?
This is a pretty common idiom these days, but I forwarded the issue to the mailing list for further discussion. Please follow up there.