A meta comment on the comments on this article: as one might expect post-"goto fail"[1] there are a lot of people saying "hey this should be refactored, no goto!" I thought that at first when looking at the code, given what I remember of the Apple SSL vulnerability, and how "goto" has a smell. But, as it turns out, there are sane reasons to use goto in systems programming, especially as a kind of cleanup / finally block. TIL.