Yes, goto exit and cleanup resources on error is a common and not frowned upon idiom in C. See Python source.
(Or Apple's "goto fail" bug for a somewhat infamous example how to not use it.)
But that problem was not because of the goto, strictly speaking.