diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-08-01 00:44:26 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-08-01 00:44:26 +0000 |
commit | d7d5363b0e51adbe538b79208baf84428ebf739c (patch) | |
tree | 0880df1d6addeac6d10a8df7011b1e75230636cf | |
parent | 2007-07-31 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-d7d5363b0e51adbe538b79208baf84428ebf739c.tar.bz2 |
2007-07-31 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1248/networking
* libnetworking/rtems/rtems_glue.c: Luke Stras <luke@spacequest.com>
reported that when no interfaces are successfully attached, the
default route is broken and may result in a jump to an illegal
address.
-rw-r--r-- | cpukit/ChangeLog | 8 | ||||
-rw-r--r-- | cpukit/libnetworking/rtems/rtems_glue.c | 6 |
2 files changed, 13 insertions, 1 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 31c0e04483..4758c52409 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,11 @@ +2007-07-31 Joel Sherrill <joel.sherrill@OARcorp.com> + + PR 1248/networking + * libnetworking/rtems/rtems_glue.c: Luke Stras <luke@spacequest.com> + reported that when no interfaces are successfully attached, the + default route is broken and may result in a jump to an illegal + address. + 2007-07-26 Ralf Corsépius <ralf.corsepius@rtems.org> * include/rtems/bspIo.h, include/rtems/pci.h: diff --git a/cpukit/libnetworking/rtems/rtems_glue.c b/cpukit/libnetworking/rtems/rtems_glue.c index a95cd2be69..f8d6f132ca 100644 --- a/cpukit/libnetworking/rtems/rtems_glue.c +++ b/cpukit/libnetworking/rtems/rtems_glue.c @@ -807,6 +807,7 @@ rtems_bsdnet_setup (void) struct sockaddr_in broadcast; struct sockaddr_in gateway; int i; + int any_if_configured = 0; /* * Set local parameters @@ -883,6 +884,9 @@ rtems_bsdnet_setup (void) printf ("Can't read %s flags: %s\n", ifp->name, strerror (errno)); continue; } + + any_if_configured = 1; + if (flags & IFF_BROADCAST) { memset (&broadcast, '\0', sizeof broadcast); broadcast.sin_len = sizeof broadcast; @@ -904,7 +908,7 @@ rtems_bsdnet_setup (void) /* * Set default route */ - if (rtems_bsdnet_config.gateway) { + if (rtems_bsdnet_config.gateway && any_if_configured) { address.sin_addr.s_addr = INADDR_ANY; netmask.sin_addr.s_addr = INADDR_ANY; memset (&gateway, '\0', sizeof gateway); |