DragonFly bugs List (threaded) for 2005-01
Re: Routing bugs: zebra/quagga are unusable => I have found the cause
I have found the reason why ospfd crashes with segmentation faults.
The culprit is line 261 of /usr/include/net/route.h
#define sa_dst rti_info[RTAX_DST]
This macro hides some local variables from ospfd and leads to
attempts to read from a null address.
This macro and the other similar macrodefintions do not exist in
FreeBSD. I believe that they break a large number of networking
programs. The origin of the problem is that in this case the old C
tradition to use small letters for variables and capital letters for
macrodefintions has not been observed. This example shows that there
was a very good reason for that tradition.
I suggest to change these macros to capital letters and in the
future to define macros according to the tradition, because otherwise it
is impossible to avoid name conflicts and the C compiler cannot signal
the error in such cases.
The panic that appears with vlan interfaces is caused by a field
(ifma_lladdr) in the interface structures that remains uninitialized in
DragonFly, unlike in FreeBSD, but I have yet to find where it should
have been initialized.
Best regards !