[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Probable Bug in tcp.h
- To: marc_(_dot_)_loerner_(_at_)_hob_(_dot_)_de
- Subject: Re: Probable Bug in tcp.h
- From: Rui Paulo <rpaulo_(_at_)_FreeBSD_(_dot_)_org>
- Date: Thu, 5 Jun 2008 16:56:46 +0100
- Cc: freebsd-net_(_at_)_freebsd_(_dot_)_org
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:references:mime-version:content-type:content-disposition :in-reply-to:user-agent:sender; bh=aNA+3m7G34TihAYJBQ5VstWebQ8IN2OyPrqXrdkM3bI=; b=Lmp1k+XQkWCof2r1WHfLfiWxZ3vTVXz7xJPAOIR++u/pMZVuY9nLFz6jLN7rLCG7/M xCm6Hc6FUJGFm2iuTWA0ntrZGg36Aiwjwa0h3KOxcoIbCdTPh5P8tz60DU3snH71qHIm luN9DFGPcQsx3toWFrWDnGmjzHlhU8I35dU1E=
On Thu, Jun 05, 2008 at 05:12:47PM +0200, =?ISO-8859-1?Q?Marc_L=F6rner_ wrote:
> Hello,
> I probably found a bug in declaration of "struct tcphdr"!
>
> struct tcphdr {
> u_short th_sport; /* source port */
> u_short th_dport; /* destination port */
> tcp_seq th_seq; /* sequence number */
> tcp_seq th_ack; /* acknowledgement number */
> #if BYTE_ORDER == LITTLE_ENDIAN
> u_int th_x2:4, /* (unused) */ <---here
> th_off:4; /* data offset */ <---
> #endif
> #if BYTE_ORDER == BIG_ENDIAN
> u_int th_off:4, /* data offset */
> th_x2:4; /* (unused) */
> #endif
> u_char th_flags;
>
> First of all I have the problam of misalignment of th_off. Because in this way
> always 4 bytes are read and the the bits of th_off are replaced. Then the 4
> bytes are written back.
>
> But should (th_x and th_off) not only be 1 byte in whole -> only read and
> write 1 byte?
>
> I think if this was changed, my misalignment problems would go away!
I'm not sure what you mean.
Please supply more information, like:
1) Are you running on little endian? Or big endian?
2) th_x2 + th_off are 1 byte in size. What do you mean?
3) What is exactly the effect? I don't understand the "replaced", "written
back" etc. sentence.
Regards,
--
Rui Paulo
_______________________________________________
freebsd-net_(_at_)_freebsd_(_dot_)_org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe_(_at_)_freebsd_(_dot_)_org"
Visit your host, monkey.org