On Tue, Feb 04, 2014 at 08:35:02PM -0500, Eitan Adler wrote:
> Hi all,
> 
> The following bug was recently fixed in DragonFlyBSD and FreeBSD:
> 
> libc/net: Fix issue in inet6_opt_init() (from RFC 3542):
> 
> * The RFC says (in section 10.1) that only when extbuf is not NULL,
> extlen shall be checked, so don't perform this check when NULL
> is passed.

I understand the RFC and the man page the same way, OK bluhm@

> 
> Obtained by: DragonFlyBSD
> 
> Index: ip6opt.c
> ===================================================================
> RCS file: /cvs/src/lib/libc/net/ip6opt.c,v
> retrieving revision 1.4
> diff -u -r1.4 ip6opt.c
> --- ip6opt.c    9 Dec 2006 01:12:28 -0000       1.4
> +++ ip6opt.c    5 Feb 2014 01:30:21 -0000
> @@ -383,11 +383,8 @@
>  {
>         struct ip6_ext *ext = (struct ip6_ext *)extbuf;
> 
> -       if (extlen < 0 || (extlen % 8))
> -               return (-1);
> -
>         if (ext) {
> -               if (extlen == 0)
> +               if (extlen <= 0 || (extlen % 8))
>                         return (-1);
>                 ext->ip6e_len = (extlen >> 3) - 1;
>         }
> 
> 
> 
> -- 
> Eitan Adler

Reply via email to