On Thu, Nov 18, 2021 at 08:50:37AM +0000, Stuart Henderson wrote:
> On 2021/11/18 09:15, Claudio Jeker wrote:
> > On Thu, Nov 18, 2021 at 08:10:26AM +0000, Stuart Henderson wrote:
> > > On 2021/11/15 17:23, Alexander Bluhm wrote:
> > > > +               DUMP(ids, "%p");
> > > > +               DUMP(ids_swapped, "%d");
> > > > +               DUMP(mtu, "%d");
> > > > +               DUMP(mtutimeout, "%lld");
> > > > +               pr("%18s: %08x\n", "udpencap_port",
> > > > +                   ntohl(tdb->tdb_udpencap_port));
> > > 
> > > ntohl is incorrect here:
> > > 
> > >      udpencap_port: 11940000
> > > 
> > > Index: netinet/ip_ipsp.c
> > > ===================================================================
> > > RCS file: /cvs/src/sys/netinet/ip_ipsp.c,v
> > > retrieving revision 1.250
> > > diff -u -p -r1.250 ip_ipsp.c
> > > --- netinet/ip_ipsp.c     16 Nov 2021 13:53:14 -0000      1.250
> > > +++ netinet/ip_ipsp.c     18 Nov 2021 08:08:47 -0000
> > > @@ -591,8 +591,7 @@ tdb_printit(void *addr, int full, int (*
> > >           DUMP(ids_swapped, "%d");
> > >           DUMP(mtu, "%d");
> > >           DUMP(mtutimeout, "%lld");
> > > -         pr("%18s: %08x\n", "udpencap_port",
> > > -             ntohl(tdb->tdb_udpencap_port));
> > > +         pr("%18s: %08x\n", "udpencap_port", tdb->tdb_udpencap_port);
> > >           DUMP(tag, "%d");
> > >           DUMP(tap, "%d");
> > >           DUMP(rdomain, "%d");
> > > 
> > 
> > I think this needs to be ntohs(tdb->tdb_udpencap_port) since it is still
> > stored in network byte order.
> 
> With ntohs, it's "udpencap_port: 00000000"

I would also use %d as format string. This is just a simple portnumber.

The code using tdb_udpencap_port for sure assumes network byte order:
                uh->uh_sport = uh->uh_dport = htons(udpencap_port);
                if (tdb->tdb_udpencap_port)
                        uh->uh_dport = tdb->tdb_udpencap_port;

-- 
:wq Claudio

Reply via email to