diff options
Diffstat (limited to 'security/ssh/files/patch-bo')
| -rw-r--r-- | security/ssh/files/patch-bo | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/security/ssh/files/patch-bo b/security/ssh/files/patch-bo new file mode 100644 index 000000000000..886720df255d --- /dev/null +++ b/security/ssh/files/patch-bo @@ -0,0 +1,197 @@ +*** servconf.c.orig Wed May 12 13:19:28 1999 +--- servconf.c Mon Jan 10 22:56:13 2000 +*************** +*** 81,88 **** + void initialize_server_options(ServerOptions *options) + { + memset(options, 0, sizeof(*options)); +! options->port = -1; +! options->listen_addr.s_addr = INADDR_ANY; + options->host_key_file = NULL; + options->random_seed_file = NULL; + options->pid_file = NULL; +--- 81,88 ---- + void initialize_server_options(ServerOptions *options) + { + memset(options, 0, sizeof(*options)); +! options->num_ports = 0; +! options->listen_addrs = NULL; + options->host_key_file = NULL; + options->random_seed_file = NULL; + options->pid_file = NULL; +*************** +*** 92,97 **** +--- 92,100 ---- + options->permit_root_login = -1; + options->ignore_rhosts = -1; + options->ignore_root_rhosts = -1; ++ #ifdef ENABLE_LOG_AUTH ++ options->log_auth = -1; ++ #endif /* ENABLE_LOG_AUTH */ + options->quiet_mode = -1; + options->fascist_logging = -1; + options->print_motd = -1; +*************** +*** 138,153 **** + + void fill_default_server_options(ServerOptions *options) + { +! if (options->port == -1) + { +! struct servent *sp; +! +! sp = getservbyname(SSH_SERVICE_NAME, "tcp"); +! if (sp) +! options->port = ntohs(sp->s_port); +! else +! options->port = SSH_DEFAULT_PORT; +! endservent(); + } + if (options->host_key_file == NULL) + options->host_key_file = HOST_KEY_FILE; +--- 141,171 ---- + + void fill_default_server_options(ServerOptions *options) + { +! struct addrinfo hints, *ai, *aitop; +! char strport[PORTSTRLEN]; +! int i; +! +! if (options->num_ports == 0) +! options->ports[options->num_ports++] = SSH_DEFAULT_PORT; +! if (options->listen_addrs == NULL) + { +! for (i = 0; i < options->num_ports; i++) +! { +! memset(&hints, 0, sizeof(hints)); +! hints.ai_flags = AI_PASSIVE; +! hints.ai_family = IPv4or6; +! hints.ai_socktype = SOCK_STREAM; +! sprintf(strport, "%d", options->ports[i]); +! if (getaddrinfo(NULL, strport, &hints, &aitop) != 0) +! { +! fprintf(stderr, "fatal: getaddrinfo: Cannot get anyaddr.\n"); +! exit(1); +! } +! for (ai = aitop; ai->ai_next; ai = ai->ai_next); +! ai->ai_next = options->listen_addrs; +! options->listen_addrs = aitop; +! } +! /* freeaddrinfo(options->listen_addrs) in sshd.c */ + } + if (options->host_key_file == NULL) + options->host_key_file = HOST_KEY_FILE; +*************** +*** 243,248 **** +--- 261,269 ---- + { + sPort, sHostKeyFile, sServerKeyBits, sLoginGraceTime, sKeyRegenerationTime, + sPermitRootLogin, sQuietMode, sFascistLogging, sLogFacility, ++ #ifdef ENABLE_LOG_AUTH ++ sLogAuth, ++ #endif /* ENABLE_LOG_AUTH */ + sRhostsAuthentication, sRhostsRSAAuthentication, sRSAAuthentication, + sTISAuthentication, sPasswordAuthentication, sAllowHosts, sDenyHosts, + sListenAddress, sPrintMotd, sIgnoreRhosts, sX11Forwarding, sX11DisplayOffset, +*************** +*** 275,280 **** +--- 296,304 ---- + { "quietmode", sQuietMode }, + { "fascistlogging", sFascistLogging }, + { "syslogfacility", sLogFacility }, ++ #ifdef ENABLE_LOG_AUTH ++ { "logauth", sLogAuth }, ++ #endif /* ENABLE_LOG_AUTH */ + { "rhostsauthentication", sRhostsAuthentication }, + { "rhostsrsaauthentication", sRhostsRSAAuthentication }, + { "rsaauthentication", sRSAAuthentication }, +*************** +*** 367,372 **** +--- 391,399 ---- + char *cp, **charptr; + int linenum, *intptr, i, value; + ServerOpCodes opcode; ++ struct addrinfo hints, *ai, *aitop; ++ char strport[PORTSTRLEN]; ++ int gaierr; + + f = fopen(filename, "r"); + if (!f) +*************** +*** 389,395 **** + switch (opcode) + { + case sPort: +! intptr = &options->port; + parse_int: + cp = strtok(NULL, WHITESPACE); + if (!cp) +--- 416,429 ---- + switch (opcode) + { + case sPort: +! if (options->num_ports >= MAX_PORTS) +! { +! fprintf(stderr, "%s line %d: too many ports.\n", +! filename, linenum); +! exit(1); +! } +! options->ports[options->num_ports] = -1; +! intptr = &options->ports[options->num_ports++]; + parse_int: + cp = strtok(NULL, WHITESPACE); + if (!cp) +*************** +*** 452,462 **** + filename, linenum); + exit(1); + } +! #ifdef BROKEN_INET_ADDR +! options->listen_addr.s_addr = inet_network(cp); +! #else /* BROKEN_INET_ADDR */ +! options->listen_addr.s_addr = inet_addr(cp); +! #endif /* BROKEN_INET_ADDR */ + break; + + case sHostKeyFile: +--- 486,510 ---- + filename, linenum); + exit(1); + } +! if (options->num_ports == 0) +! options->ports[options->num_ports++] = SSH_DEFAULT_PORT; +! for (i = 0; i < options->num_ports; i++) +! { +! memset(&hints, 0, sizeof(hints)); +! hints.ai_family = IPv4or6; +! hints.ai_socktype = SOCK_STREAM; +! sprintf(strport, "%d", options->ports[i]); +! if ((gaierr = getaddrinfo(cp, strport, &hints, &aitop)) != 0) +! { +! fprintf(stderr, "%s line %d: bad addr or host. (%s)\n", +! filename, linenum, gai_strerror(gaierr)); +! exit(1); +! } +! for (ai = aitop; ai->ai_next; ai = ai->ai_next); +! ai->ai_next = options->listen_addrs; +! options->listen_addrs = aitop; +! } +! strtok(cp, WHITESPACE); /* getaddrinfo() may use strtok() */ + break; + + case sHostKeyFile: +*************** +*** 531,536 **** +--- 579,590 ---- + if (*intptr == -1) + *intptr = value; + break; ++ ++ #ifdef ENABLE_LOG_AUTH ++ case sLogAuth: ++ intptr = &options->log_auth; ++ goto parse_flag; ++ #endif /* ENABLE_LOG_AUTH */ + + case sIgnoreRhosts: + intptr = &options->ignore_rhosts; |
