tech-net archive

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

Re: sin_zero


> What I'm wondering is, would this break anything?  It seems to me like
> a no-downside change, but there's a lot of code I don't truly
> understand running around there.  I'm of the opinion that the most
> correct thing to do is to change it and then fix anything it breaks,
> because that really is the correct configuration.  But for the purposes
> at hand here, I'd rather work around the bug in userland than get
> involved in debugging of long-standing and widely scattered kernel
> issues exposed by such a change.  I could, of course, just change it
> and see, but there may be issues like "that would expose random kernel
> memory to nonprivileged userland via $THING" which aren't obviously
> broken but are clearly undesirable.

From theoretical point of view, I agree with you.  However, From the practital,
I am wondering whether your modification may break existing routing daemons
such as routed, gated, mrt, zebra (quagga), xorp and so on because they listen
on a routing socket to import kernel routes into them.  At a glance, routed
seems to be okay but others are unknown.

BTW, even with your modification, you may still need to properly set sin_len to
not sizeof(struct sockaddr_in) but like offsetof(struct sockaddr_in, sin_zero)
in order to make kernel ignore uninitialized sin_zero.  I am afraid that this
would make it difficult to write a portable code because all OSes do not have
non-standard sin_zero field.  Just initializing struct sockaddr_in with all
zeros is very portabale, IMHO.

Best regards,
Motoyuki OHMORI <>

Home | Main Index | Thread Index | Old Index