LIBBSD TCPDUMP

Joel Sherrill joel at rtems.org
Sat Jul 1 15:39:11 UTC 2017


On Jul 1, 2017 10:34 AM, "Gedare Bloom" <gedare at rtems.org> wrote:

On Sat, Jul 1, 2017 at 10:01 AM, Kirspel, Kevin <Kevin-Kirspel at idexx.com>
wrote:
> I get a crash when running the tcpdump command in LIBBSD.  It is due to
the
> following structure
>
>
>
> struct stp_bpdu_ {
>
>     u_int8_t protocol_id[2];
>
>     u_int8_t protocol_version;
>
>     u_int8_t bpdu_type;
>
>     u_int8_t flags;
>
>     u_int8_t root_id[8];
>
>     u_int8_t root_path_cost[4];
>
>    u_int8_t bridge_id[8];
>
>     u_int8_t port_id[2];
>
>     u_int8_t message_age[2];
>
>     u_int8_t max_age[2];
>
>     u_int8_t hello_time[2];
>
>     u_int8_t forward_delay[2];
>
>     u_int8_t v1_length;
>
> };
>
>
>
> In the code, there is an access to the port_id field as follows:
> EXTRACT_16BITS(&stp_bpdu->port_id).  EXTRACT_16BITS calls ntohs() .  Since
> the address of “&stp_bpdu->port_id” is at an odd word (16 bit) boundary,
an
> exception is generated.  What is the correct way to fix this?  I was going
> to update EXTRACT_16BITS to check for an odd boundary and fix it up before
> calling ntohs().
>

That would probably be a more portable fix than allowing unaligned
accesses. I think the alignment should be made to the CPU_ALIGNMENT
macro.


Can't you also just pull it out a byte at a time, form the net version and
then ntohs()?

That's what I coded recently in some marahalling code.



>
>
> Kevin Kirspel
>
> Electrical Engineer - Sr. Staff
>
> Idexx Roswell
>
> 235 Hembree Park Drive
>
> Roswell GA 30076
>
> Tel: (770)-510-4444 ext. 81642
>
> Direct: (770)-688-1642
>
> Fax: (770)-510-4445
>
>
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel at rtems.org
http://lists.rtems.org/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20170701/d86f89e7/attachment.html>


More information about the devel mailing list