You don't have to like the way things are done in C (and they're necessarily at a lower level than what you're used to), but you should at least make an effort to understand why things are done the way they are before offering non-solutions.
Well before you call solutions "non-solutions" and before you tell me what I am used to, you should at least make an effort to understand why I proposed this solution and why I find it a better way to work and why there are some advantages of coding this way. Even in C.
The concepts aren't difficult but I will spell them out for you anyway.
One line per instruction. Conceptually easier.
Nesting to highlight that fact that you are deep in a bunch of conditionals. It sort of shows that to get this deep in you needed to pass a lot of tests. If you feel the depth is too deep then it highlights the point that maybe you could've coded it differently.
Always use curly braces even for one line of scope.
Also means you don't have to use goto statements or labels. I admit I don't find them particularly troublesome but don't really need to use them either.
The disadvantages I see are:
more typing (not a problem)
more screen space used. (not a problem anymore, got rid of that vga graphics card.)
but the biggy is that it breaks convention with what most others are doing. (okay problem)
For me anyway, the reason this bug was created but undetected for the time that it was, was partly due to the coding convention.
The 'goto fail' idiom may be the standard way error handling is done in C, but it can hide bugs.