Re: libsa's in_cksum() cannot handle payload of odd-length?

2020-05-18 Thread Theo de Raadt
> > ./usr.sbin/eigrpd/in_cksum.c > > This one uses unsigned char instead of u_char, but is otherwise the same > as dvmrpd/ospfd. Should probably be made identical.

Re: libsa's in_cksum() cannot handle payload of odd-length?

2020-05-18 Thread Patrick Wildt
On Mon, May 18, 2020 at 10:16:27AM -0600, Theo de Raadt wrote: > I suspect there are other inconsistancies in all these versions. > > ./sys/arch/arm/arm/in_cksum_arm.S > ./sys/arch/i386/i386/in_cksum.s > ./sys/arch/sparc64/sparc64/in_cksum.S > ./sys/arch/sh/sh/in_cksum.S These are assembly and

Re: libsa's in_cksum() cannot handle payload of odd-length?

2020-05-18 Thread Theo de Raadt
I suspect there are other inconsistancies in all these versions. ./usr.sbin/dvmrpd/in_cksum.c ./usr.sbin/eigrpd/in_cksum.c ./usr.sbin/ospfd/in_cksum.c ./usr.sbin/tcpdump/in_cksum.c ./sys/arch/alpha/alpha/in_cksum.c ./sys/arch/arm/arm/in_cksum_arm.S ./sys/arch/hppa/hppa/in_cksum.c

Re: libsa's in_cksum() cannot handle payload of odd-length?

2020-05-18 Thread Patrick Wildt
On Mon, May 18, 2020 at 05:50:28PM +0200, Claudio Jeker wrote: > On Mon, May 18, 2020 at 03:50:05PM +0200, Patrick Wildt wrote: > > Hi, > > > > I was trying to tftpboot and had an issue with files of odd-length. > > As it turns out, I think the in_cksum() that's called for UDP payload > > cannot

Re: libsa's in_cksum() cannot handle payload of odd-length?

2020-05-18 Thread Claudio Jeker
On Mon, May 18, 2020 at 03:50:05PM +0200, Patrick Wildt wrote: > Hi, > > I was trying to tftpboot and had an issue with files of odd-length. > As it turns out, I think the in_cksum() that's called for UDP payload > cannot handle a payload length that's not aligned to 16 bytes. > > I don't know

libsa's in_cksum() cannot handle payload of odd-length?

2020-05-18 Thread Patrick Wildt
Hi, I was trying to tftpboot and had an issue with files of odd-length. As it turns out, I think the in_cksum() that's called for UDP payload cannot handle a payload length that's not aligned to 16 bytes. I don't know how in_cksum() is supposed to work exactly, but it looks like the first step