This is the mail archive of the
ecos-bugs@sourceware.org
mailing list for the eCos project.
[Issue 1002122] New: controller abort exception by removing a multicast address from multicast list
- From: bugzilla-daemon at ecoscentric dot com
- To: ecos-bugs at ecos dot sourceware dot org
- Date: Fri, 29 Jan 2016 13:16:14 +0000
- Subject: [Issue 1002122] New: controller abort exception by removing a multicast address from multicast list
- Authentication-results: sourceware.org; auth=none
- Authentication-results: mail.ecoscentric.com; dkim=permerror (bad message/signature format)
- Auto-submitted: auto-generated
Please do not reply to this email, use the link below.
https://bugzilla.ecoscentric.com/show_bug.cgi?id=1002122
Issue ID: 1002122
Summary: controller abort exception by removing a multicast
address from multicast list
Product: eCos
Version: 2.0
Target: Custom (Customer specific)
Architecture/Host_ ARM
OS:
Status: UNCONFIRMED
Severity: normal
Priority: low
Component: TCP/IP
Assignee: unassigned@bugs.ecos.sourceware.org
Reporter: ckraus@bihl-wiedemann.de
QA Contact: ecos-bugs@ecos.sourceware.org
CC: ecos-bugs@ecos.sourceware.org
Custom Target: STR912FAW47
Overview:
In our application we need to add a multicast address in the multicast list of
the bsd stack. We are using the appropriate bsd stack function to add the
multicast address. After we add the multicast address and before! removing we
found out that the le_next pointer (which points to the next element in the
list) is not vaild. It points to nothing!
Anyway, ecos removes the elements from the list and (re)writes the not valid
pointer addresses in the first pointer (first pointer is static to find always
the first element of the list).
Now, If we want to add another multicast address or we receiving a multicast
frame, ecos uses the first pointer again to find the first element in the list.
The pointer is not valid and we get a data abort exception from the controller.
Steps to Reproduce:
- adding a multicast address in the multicast list of the bsd stack
- removing the same multicast address from the multicast list
- trying to add another address or receiving a multicast frame
Actual Results:
- data abort excption due to not valid pointer
the struct of one list elemet is the following:
#define LIST_ENTRY(type) \
struct { \
struct type *le_next; /* next element */ \
struct type **le_prev; /* address of previous next element */ \
}
struct ifmultiaddr {
LIST_ENTRY(ifmultiaddr) ifma_link; /* queue macro glue */
struct sockaddr *ifma_addr; /* address this membership is for */
struct sockaddr *ifma_lladdr; /* link-layer translation, if any */
struct ifnet *ifma_ifp; /* back-pointer to interface */
u_int ifma_refcount; /* reference count */
void *ifma_protospec; /* protocol-specific state, if any */
};
and can be found at .../net/var.h
The whole memory for the bsd is at the external sram in our application!
Thanks a lot for your help and ideas
best regards
Christian
--
You are receiving this mail because:
You are the QA Contact for the issue.
You are on the CC list for the issue.