DragonFly BSD
DragonFly bugs List (threaded) for 2005-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Routing bugs: zebra/quagga are unusable => I have found the cause

From: Adrian Bocaniciu <a.bocaniciu@xxxxxxxxxxxx>
Date: Wed, 05 Jan 2005 11:37:00 +0000
Cc: joerg@xxxxxxxxxxxxxxxxx

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 !

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