[daemons] Sanity check port number arguments before use

2008-05-29 Martin Nagy <mnagy@redhat.com>

	* */*main.c: Sanity check port numbers before using.
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index e6d34af..2089c6b 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -203,6 +203,7 @@
   int dryrun = 0;
   char *progname;
   struct thread thread;
+  int tmp_port;
 
   /* Set umask before anything for security */
   umask (0027);
@@ -238,7 +239,11 @@
           pid_file = optarg;
           break;
 	case 'p':
-	  bm->port = atoi (optarg);
+	  tmp_port = atoi (optarg);
+	  if (tmp_port <= 0 || tmp_port > 0xffff)
+	    bm->port = BGP_PORT_DEFAULT;
+	  else
+	    bm->port = tmp_port;
 	  break;
 	case 'A':
 	  vty_addr = optarg;
@@ -252,7 +257,8 @@
               break;
             } 
           vty_port = atoi (optarg);
-          vty_port = (vty_port ? vty_port : BGP_VTY_PORT);
+	  if (vty_port <= 0 || vty_port > 0xffff)
+	    vty_port = BGP_VTY_PORT;
 	  break;
 	case 'r':
 	  retain_mode = 1;