=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/readconf.c,v retrieving revision 1.143.2.2 retrieving revision 1.144 diff -u -r1.143.2.2 -r1.144 --- src/usr.bin/ssh/readconf.c 2006/10/06 03:19:33 1.143.2.2 +++ src/usr.bin/ssh/readconf.c 2005/12/06 22:38:27 1.144 @@ -1,4 +1,3 @@ -/* $OpenBSD: readconf.c,v 1.143.2.2 2006/10/06 03:19:33 brad Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -12,31 +11,18 @@ * called by a name other than "ssh" or "Secure Shell". */ -#include -#include -#include +#include "includes.h" +RCSID("$OpenBSD: readconf.c,v 1.144 2005/12/06 22:38:27 reyk Exp $"); -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "xmalloc.h" #include "ssh.h" +#include "xmalloc.h" #include "compat.h" #include "cipher.h" #include "pathnames.h" #include "log.h" -#include "key.h" #include "readconf.h" #include "match.h" #include "misc.h" -#include "buffer.h" #include "kex.h" #include "mac.h" @@ -108,7 +94,6 @@ typedef enum { oBadOption, oForwardAgent, oForwardX11, oForwardX11Trusted, oGatewayPorts, - oExitOnForwardFailure, oPasswordAuthentication, oRSAAuthentication, oChallengeResponseAuthentication, oXAuthLocation, oIdentityFile, oHostName, oPort, oCipher, oRemoteForward, oLocalForward, @@ -139,7 +124,6 @@ { "forwardagent", oForwardAgent }, { "forwardx11", oForwardX11 }, { "forwardx11trusted", oForwardX11Trusted }, - { "exitonforwardfailure", oExitOnForwardFailure }, { "xauthlocation", oXAuthLocation }, { "gatewayports", oGatewayPorts }, { "useprivilegedport", oUsePrivilegedPort }, @@ -287,7 +271,7 @@ xfree(options->remote_forwards[i].connect_host); } options->num_remote_forwards = 0; - options->tun_open = SSH_TUNMODE_NO; + options->tun_open = 0; } /* @@ -320,8 +304,7 @@ int *activep) { char *s, **charptr, *endofnumber, *keyword, *arg, *arg2, fwdarg[256]; - int opcode, *intptr, value, value2, scale; - long long orig, val64; + int opcode, *intptr, value, value2; size_t len; Forward fwd; @@ -334,8 +317,7 @@ s = line; /* Get the keyword. (Each line is supposed to begin with a keyword). */ - if ((keyword = strdelim(&s)) == NULL) - return 0; + keyword = strdelim(&s); /* Ignore leading whitespace. */ if (*keyword == '\0') keyword = strdelim(&s); @@ -392,10 +374,6 @@ intptr = &options->gateway_ports; goto parse_flag; - case oExitOnForwardFailure: - intptr = &options->exit_on_forward_failure; - goto parse_flag; - case oUsePrivilegedPort: intptr = &options->use_privileged_port; goto parse_flag; @@ -499,36 +477,22 @@ fatal("%.200s line %d: Missing argument.", filename, linenum); if (arg[0] < '0' || arg[0] > '9') fatal("%.200s line %d: Bad number.", filename, linenum); - orig = val64 = strtoll(arg, &endofnumber, 10); + value = strtol(arg, &endofnumber, 10); if (arg == endofnumber) fatal("%.200s line %d: Bad number.", filename, linenum); switch (toupper(*endofnumber)) { - case '\0': - scale = 1; - break; case 'K': - scale = 1<<10; + value *= 1<<10; break; case 'M': - scale = 1<<20; + value *= 1<<20; break; case 'G': - scale = 1<<30; + value *= 1<<30; break; - default: - fatal("%.200s line %d: Invalid RekeyLimit suffix", - filename, linenum); } - val64 *= scale; - /* detect integer wrap and too-large limits */ - if ((val64 / scale) != orig || val64 > INT_MAX) - fatal("%.200s line %d: RekeyLimit too large", - filename, linenum); - if (val64 < 16) - fatal("%.200s line %d: RekeyLimit too small", - filename, linenum); if (*activep && *intptr == -1) - *intptr = (int)val64; + *intptr = value; break; case oIdentityFile: @@ -869,32 +833,14 @@ case oTunnel: intptr = &options->tun_open; - arg = strdelim(&s); - if (!arg || *arg == '\0') - fatal("%s line %d: Missing yes/point-to-point/" - "ethernet/no argument.", filename, linenum); - value = 0; /* silence compiler */ - if (strcasecmp(arg, "ethernet") == 0) - value = SSH_TUNMODE_ETHERNET; - else if (strcasecmp(arg, "point-to-point") == 0) - value = SSH_TUNMODE_POINTOPOINT; - else if (strcasecmp(arg, "yes") == 0) - value = SSH_TUNMODE_DEFAULT; - else if (strcasecmp(arg, "no") == 0) - value = SSH_TUNMODE_NO; - else - fatal("%s line %d: Bad yes/point-to-point/ethernet/" - "no argument: %s", filename, linenum, arg); - if (*activep) - *intptr = value; - break; + goto parse_flag; case oTunnelDevice: arg = strdelim(&s); if (!arg || *arg == '\0') fatal("%.200s line %d: Missing argument.", filename, linenum); value = a2tun(arg, &value2); - if (value == SSH_TUNID_ERR) + if (value < -1) fatal("%.200s line %d: Bad tun device.", filename, linenum); if (*activep) { options->tun_local = value; @@ -997,7 +943,6 @@ options->forward_agent = -1; options->forward_x11 = -1; options->forward_x11_trusted = -1; - options->exit_on_forward_failure = -1; options->xauth_location = NULL; options->gateway_ports = -1; options->use_privileged_port = -1; @@ -1078,8 +1023,6 @@ options->forward_x11 = 0; if (options->forward_x11_trusted == -1) options->forward_x11_trusted = 0; - if (options->exit_on_forward_failure == -1) - options->exit_on_forward_failure = 0; if (options->xauth_location == NULL) options->xauth_location = _PATH_XAUTH; if (options->gateway_ports == -1) @@ -1187,11 +1130,7 @@ if (options->hash_known_hosts == -1) options->hash_known_hosts = 0; if (options->tun_open == -1) - options->tun_open = SSH_TUNMODE_NO; - if (options->tun_local == -1) - options->tun_local = SSH_TUNID_ANY; - if (options->tun_remote == -1) - options->tun_remote = SSH_TUNID_ANY; + options->tun_open = 0; if (options->permit_local_command == -1) options->permit_local_command = 0; /* options->local_command should not be set by default */