<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 7 March 2014 12:22, Nico Williams <span dir="ltr"><<a href="mailto:nico@cryptonector.com" target="_blank">nico@cryptonector.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">Goto isn't the problem.</div><div class=""><br></div></blockquote><div><br></div><div>Anyone hung up on goto should learn that you can write the same code with:</div>
<div><br></div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace">do {</font></div></div></div><div class="gmail_extra">
<div class="gmail_quote"><div><font face="courier new, monospace">   if (something fails) {</font></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace">      break;</font></div>
</div></div><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace">   }</font></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace"><br>
</font></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace">   ...</font></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace"><br>
</font></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace">} while (false);</font></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace"><br>
</font></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace">/* cleanup code goes here */</font></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote">
<div><br></div><div>This has no goto, but it has exactly the same failure modes as the goto-laden code (btw, if you're looking for a "goto cleanup;" equivalent in Java, this is how you do it).</div><div><br>
</div><div>I believe the real issue here remains that writing <i>and testing</i> security code is hard. And re-implementing an essential security library for license purity is, bluntly, foolish.</div><div><br></div><div>-- </div>
<div>Harald</div><div> </div></div><br></div></div>