NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/41124: Anritsu corporation seed router can't parse AARP-reply through AppleTalk(Netatalk)



>Number:         41124
>Category:       kern
>Synopsis:       Anritsu corporation seed router can't parse AARP-reply through 
>AppleTalk(Netatalk)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Apr 03 07:50:00 +0000 2009
>Originator:     Yuichi Sakurai
>Release:        2.0.2
>Organization:
Ricoh Software Inc.
>Environment:
>Description:
AARP-reply about at_aarpinput() in /src/sys/netatalk/aarp.c

Anritsu corporation seed router(Anritsu MF5024) is checking 802.3 Ethernet 
Length field.
But,When AARP-request is sent from the router
Netatalk(NetBSD) AARP-reply is not set Length field. This is different from the 
specifications.
As a result because the router can't be checked, AARP can't be solved.

By the way, AARP-request and AARP-probe set Length field.

>How-To-Repeat:
see above.
>Fix:
About at_aarpinput() in /src/sys/netatalk/aarp.c, we must modify as follows.

        /* XXX */
        eh = (struct ether_header *) sa.sa_data;
        memcpy( eh->ether_dhost, ea->aarp_tha, sizeof(eh->ether_dhost));

+       m->m_len = sizeof(*ea);
+       m->m_pkthdr.len = sizeof(*ea);

        if (aa->aa_flags & AFA_PHASE2) {
                M_PREPEND(m, sizeof(struct llc), M_DONTWAIT);
                if (m == NULL)
                        return;

Length field set 36(sizeof(*ea)) is true.



Home | Main Index | Thread Index | Old Index