The end of the loop checks the interface pointers and releases them, but it doesn't set them to NULL. This might cause us to release the interfaces too many times. I suggest moving the declaration of wine_decoder, decoderinfo, and unkdecoderinfo inside the loop.