Hello, everyone.

I believe, ndp.c has a bug.

1. Line 319 defines a fresh m_rtmsg, and does not initialise it.
2. Therefore m_rtmsg.m_rtm should be empty or zero. (Or constant, I am
not very sure)
3. Line 329 defines rtm and makes it a pointer to a fresh (empty or
constant) m_rtmsg.m_rtm.
4. Nothing uses either m_rtmsg or rtm until lines 363+364.
5. On line 363, `if` checks that rtm->rtm_flags & RTF_LLINFO is true.
Effectively, it is checking that m_rtmsg.r_rtm.rtm_flags has some bit set.

This check is either checking an uninitialised, or a constant value. (I
am not very sure how fresh structures are initialised in OpenBSD) In
either case, it is not useful.

In effect, `ndp -s <ip> <mac>` always fails, because this check is
always false.

-- 
Your sincerely,
Vladimir Nikishkin (MiEr, lockywolf)
(Laptop)

Reply via email to