It's both common and a good idea, when used purely internally to a function in order to redirect error paths to a standard set of cleanup code. It helps prevents memory errors and other problems.
This is the sense in which the Linux kernel uses goto.
This is the sense in which the Linux kernel uses goto.