=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/etc/netstart,v retrieving revision 1.44 retrieving revision 1.45 diff -c -r1.44 -r1.45 *** src/etc/netstart 1998/10/06 23:25:21 1.44 --- src/etc/netstart 1998/10/28 19:17:10 1.45 *************** *** 1,7 **** #!/bin/sh - # ! # $OpenBSD: netstart,v 1.44 1998/10/06 23:25:21 deraadt Exp $ # /etc/myname contains my symbolic name # hostname=`cat /etc/myname` --- 1,21 ---- #!/bin/sh - # ! # $OpenBSD: netstart,v 1.45 1998/10/28 19:17:10 millert Exp $ + # Returns true if $1 contains only alphanumerics + isalphanumeric() { + local _n + _n=$1 + while [ ${#_n} != 0 ]; do + case $_n in + [A-Za-z0-9]*) ;; + *) return 1;; + esac + _n=${_n#?} + done + return 0 + } + # /etc/myname contains my symbolic name # hostname=`cat /etc/myname` *************** *** 60,88 **** # and the hostname. ( ! tmp="$IFS" ! IFS="$IFS." ! set -- `echo /etc/hostname*` ! IFS=$tmp ! unset tmp ! while [ $# -ge 2 ] ; do ! shift # get rid of "hostname" ( read af name mask bcaddr extras read dt dtaddr # check to see if device should be configure by dhcp if [ "$af" = "dhcp" ]; then ! ifconfig $1 $extras down ! cmd="/sbin/dhclient $1"; else if [ ! -n "$name" ]; then ! echo "/etc/hostname.$1: invalid network configuration file" exit fi ! cmd="ifconfig $1 $af $name " if [ "${dt}" = "dest" ]; then cmd="$cmd $dtaddr"; fi if [ -n "$mask" ]; then cmd="$cmd netmask $mask"; fi if [ -n "$bcaddr" -a "X$bcaddr" != "XNONE" ]; then --- 74,105 ---- # and the hostname. ( ! for hn in /etc/hostname.*; do ! # Strip off /etc/hostname. prefix ! if=${hn#/etc/hostname.} ! # Interface names must be alphanumeric only. We check to avoid ! # configuring backup or temp files, and to catch the "*" case. ! if ! isalphanumeric "$if"; then ! continue ! fi ! ! # Now parse the hostname.* file ( read af name mask bcaddr extras read dt dtaddr # check to see if device should be configure by dhcp if [ "$af" = "dhcp" ]; then ! ifconfig $if $extras down ! cmd="/sbin/dhclient $if"; else if [ ! -n "$name" ]; then ! echo "/etc/hostname.$if: invalid network configuration file" exit fi ! cmd="ifconfig $if $af $name " if [ "${dt}" = "dest" ]; then cmd="$cmd $dtaddr"; fi if [ -n "$mask" ]; then cmd="$cmd netmask $mask"; fi if [ -n "$bcaddr" -a "X$bcaddr" != "XNONE" ]; then *************** *** 92,99 **** fi $cmd ! ) < /etc/hostname.$1 ! shift done ) --- 109,115 ---- fi $cmd ! ) < /etc/hostname.$if done ) *************** *** 116,119 **** else ipnat=NO fi - --- 132,134 ----