if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
Even if we replace goto with throwing an exception or calling a handler function, bug will persist, therefore goto isn't culpit in this case. I bet on copy-pasting refactoring error or git merge when two different people add same line, but one of them uses incorrecly configured Windows client (git will think that there is two different lines: