Date: Fri, 20 Sep 2002 12:03:39 -0700 (PDT) From: pavel@networkphysics.com To: FreeBSD-gnats-submit@FreeBSD.org Subject: bin/43139: /sbin/route -host option doesn't always suffice Message-ID: <200209201903.g8KJ3di37362@gt500.fractal.networkphysics.com>
next in thread | raw e-mail | index | archive | help
>Number: 43139
>Category: bin
>Synopsis: /sbin/route -host option doesn't always suffice
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Sep 20 12:10:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Tom Pavel
>Release: FreeBSD 4.2-RELEASE i386
>Organization:
Network Physics
>Environment:
This bug is present even in 4.7 and -current, from what I read
in the sources.
>Description:
The /sbin/route command tries to be clever about guessing
whether arguments are hosts or nets. It uses Class A/B/C
prefixes as heuristics for this. Much of this is for
backwards compatibility.
Nowadays, CIDR addressing is widespread. With local netmasks
that are more than 8 bits, it is quite possible to end up with
addresses that fail the heuristics. Therefore, the route
command provides -net and -host options to force the decision.
Unfortunately, the -host option does not succeed in the case
of an address like A.B.C.0, where A is in the Class C space.
>How-To-Repeat:
transam2[269] # route -n get -host 203.2.3.0
route: writing to routing socket: No such process
>Fix:
Index: route.c
===================================================================
RCS file: /u1/Repo/FreeBSD/sbin/route/route.c,v
retrieving revision 1.5.4.1
diff -u -r1.5.4.1 route.c
--- route.c 2002/08/08 20:06:33 1.5.4.1
+++ route.c 2002/09/20 18:45:57
@@ -1002,7 +1002,7 @@
if ((which != RTA_DST || forcenet == 0) &&
(val = inet_addr(s)) != INADDR_NONE) {
su->sin.sin_addr.s_addr = val;
- if (which != RTA_DST ||
+ if (which != RTA_DST || forcehost ||
inet_lnaof(su->sin.sin_addr) != INADDR_ANY)
return (1);
else {
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200209201903.g8KJ3di37362>
