[Openswan dev] [xl2tpd] [PATCH] work around endianness bug in Apple's L2TP

Paul Wouters paul at xelerance.com
Tue Feb 22 11:45:07 EST 2011


On Tue, 22 Feb 2011, Brian Mastenbrook wrote:

> The codes in question should have been 3 and 1, respectively. The problem 
> lies in Apple's L2TP implementation:
>
>    *((u_int16_t*)buf) = params->result_code;
>
> and
>
>            *((u_int16_t*)buf) = params->error_code;
>
> from prepare_StopCCN and prepare_CDN in 
> http://www.opensource.apple.com/source/ppp/ppp-412.3/Drivers/L2TP/L2TP-plugin/l2tp.c 
> . Note the missing "htons". Bad Apple!
>
> The attached patch works around the problem by treating any result code or 
> error code whose low byte is 0 and high byte is a plausible result/error code 
> as an indication of this bug. With the patch in place, tunnels are cleaned up 
> immediately when the client disconnects.

Thanks! Will be in xl2tpd 1.2.8

Paul


More information about the Dev mailing list