commited, thanks

On Tue, Jun 13, 2017 at 07:56:32PM +0200, Klemens Nanni wrote:
> The intent here is to get the highest multiple of four smaller or equal
> than i + 3. Instead of relying on integer division to get rid of the
> remainder just to "undo" everything, simply clear the lowest two bits
> (0b11 = 3) leaving multiples of four.
> 
> Index: ping.c
> ===================================================================
> RCS file: /cvs/src/sbin/ping/ping.c,v
> retrieving revision 1.218
> diff -u -p -r1.218 ping.c
> --- ping.c    22 Feb 2017 13:43:35 -0000      1.218
> +++ ping.c    13 Jun 2017 17:29:19 -0000
> @@ -1379,7 +1379,7 @@ pr_ipopt(int hlen, u_char *buf)
>                           !memcmp(cp, old_rr, i) &&
>                           !(options & F_FLOOD)) {
>                               (void)printf("\t(same route)");
> -                             i = ((i + 3) / 4) * 4;
> +                             i = (i + 3) & ~0x3;
>                               hlen -= i;
>                               cp += i;
>                               break;
> 


-- 
I'm not entirely sure you are real.

Reply via email to