pppd: Retain foreign default routes on Linux On Linux, when pppd attempts to delete its default route it does not fill the rt_dev field of the struct rtentry used to match the system default route. As a consequence, pppd happily deletes any default route even if it belongs to another interface. This patch makes pppd fill out the rt_dev field so that only own default routes are ever matched. Signed-off-by: Jo-Philipp Wich --- a/pppd/sys-linux.c +++ b/pppd/sys-linux.c @@ -1756,6 +1756,7 @@ int cifdefaultroute (int unit, u_int32_t SIN_ADDR(rt.rt_genmask) = 0L; } + rt.rt_dev = ifname; rt.rt_flags = RTF_UP; if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) { if (still_ppp()) {