For (so far unused in the real word) double leap seconds, the binary file has different values for successive ls_trans/ls_corr pairs.
For example, if the current "leapseconds" is changed so that the upcoming leapsecond is a double, a la...
       Leap 2012 Jun 30 23:59:60 ++ S
...then there will be an an entry with an ls_trans value of 1341100824 and an ls_corr value of 25
followed by an entry with an ls_trans value of 1341100825 and an ls_corr value of 26.

Bottom line: Bradley White's code should be okay.

       --ado

________________________________________
From: Z V [igt31415926@gmail.com]
Sent: Thursday, May 24, 2012 6:02 AM
To: tz@iana.org
Subject: [tz] may be a small mistake in the localtime.c code

Hello,

The next piece of code looks like a mistake:

localtime.c (1477-1484)

                   while (i > 0 &&
                       sp->lsis[i].ls_trans ==
                       sp->lsis[i - 1].ls_trans + 1 &&
                       sp->lsis[i].ls_corr ==
                       sp->lsis[i - 1].ls_corr + 1) {
                           ++hit;
                           --i;
                   }

As far as I understand here are processed 'Leap' rules with '++' correction. If so, sp->lsis[i].ls_trans must be equal to sp->lsis[i - 1].ls_trans.

BR,
Igor