=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/servconf.c,v retrieving revision 1.375 retrieving revision 1.376 diff -u -r1.375 -r1.376 --- src/usr.bin/ssh/servconf.c 2021/01/26 05:32:21 1.375 +++ src/usr.bin/ssh/servconf.c 2021/02/15 20:36:35 1.376 @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.375 2021/01/26 05:32:21 dtucker Exp $ */ +/* $OpenBSD: servconf.c,v 1.376 2021/02/15 20:36:35 markus Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -230,39 +230,13 @@ free(def_sig); } -static void -array_append2(const char *file, const int line, const char *directive, - char ***array, int **iarray, u_int *lp, const char *s, int i) -{ - - if (*lp >= INT_MAX) - fatal("%s line %d: Too many %s entries", file, line, directive); - - if (iarray != NULL) { - *iarray = xrecallocarray(*iarray, *lp, *lp + 1, - sizeof(**iarray)); - (*iarray)[*lp] = i; - } - - *array = xrecallocarray(*array, *lp, *lp + 1, sizeof(**array)); - (*array)[*lp] = xstrdup(s); - (*lp)++; -} - -static void -array_append(const char *file, const int line, const char *directive, - char ***array, u_int *lp, const char *s) -{ - array_append2(file, line, directive, array, NULL, lp, s, 0); -} - void servconf_add_hostkey(const char *file, const int line, ServerOptions *options, const char *path, int userprovided) { char *apath = derelativise_path(path); - array_append2(file, line, "HostKey", + opt_array_append2(file, line, "HostKey", &options->host_key_files, &options->host_key_file_userprovided, &options->num_host_key_files, apath, userprovided); free(apath); @@ -274,7 +248,7 @@ { char *apath = derelativise_path(path); - array_append(file, line, "HostCertificate", + opt_array_append(file, line, "HostCertificate", &options->host_cert_files, &options->num_host_cert_files, apath); free(apath); } @@ -414,11 +388,11 @@ if (options->client_alive_count_max == -1) options->client_alive_count_max = 3; if (options->num_authkeys_files == 0) { - array_append("[default]", 0, "AuthorizedKeysFiles", + opt_array_append("[default]", 0, "AuthorizedKeysFiles", &options->authorized_keys_files, &options->num_authkeys_files, _PATH_SSH_USER_PERMITTED_KEYS); - array_append("[default]", 0, "AuthorizedKeysFiles", + opt_array_append("[default]", 0, "AuthorizedKeysFiles", &options->authorized_keys_files, &options->num_authkeys_files, _PATH_SSH_USER_PERMITTED_KEYS2); @@ -1679,7 +1653,7 @@ while ((arg = strdelim(&cp)) && *arg != '\0') { if (!*activep) continue; - array_append(filename, linenum, "oLogVerbose", + opt_array_append(filename, linenum, "oLogVerbose", &options->log_verbose, &options->num_log_verbose, arg); } @@ -1710,7 +1684,7 @@ "\"%.100s\"", filename, linenum, arg); if (!*activep) continue; - array_append(filename, linenum, "AllowUsers", + opt_array_append(filename, linenum, "AllowUsers", &options->allow_users, &options->num_allow_users, arg); } @@ -1723,7 +1697,7 @@ "\"%.100s\"", filename, linenum, arg); if (!*activep) continue; - array_append(filename, linenum, "DenyUsers", + opt_array_append(filename, linenum, "DenyUsers", &options->deny_users, &options->num_deny_users, arg); } @@ -1733,7 +1707,7 @@ while ((arg = strdelim(&cp)) && *arg != '\0') { if (!*activep) continue; - array_append(filename, linenum, "AllowGroups", + opt_array_append(filename, linenum, "AllowGroups", &options->allow_groups, &options->num_allow_groups, arg); } @@ -1743,7 +1717,7 @@ while ((arg = strdelim(&cp)) && *arg != '\0') { if (!*activep) continue; - array_append(filename, linenum, "DenyGroups", + opt_array_append(filename, linenum, "DenyGroups", &options->deny_groups, &options->num_deny_groups, arg); } @@ -1907,7 +1881,7 @@ if (*activep && options->num_authkeys_files == 0) { while ((arg = strdelim(&cp)) && *arg != '\0') { arg = tilde_expand_filename(arg, getuid()); - array_append(filename, linenum, + opt_array_append(filename, linenum, "AuthorizedKeysFile", &options->authorized_keys_files, &options->num_authkeys_files, arg); @@ -1945,7 +1919,7 @@ filename, linenum); if (!*activep) continue; - array_append(filename, linenum, "AcceptEnv", + opt_array_append(filename, linenum, "AcceptEnv", &options->accept_env, &options->num_accept_env, arg); } @@ -1959,7 +1933,7 @@ filename, linenum); if (!*activep || uvalue != 0) continue; - array_append(filename, linenum, "SetEnv", + opt_array_append(filename, linenum, "SetEnv", &options->setenv, &options->num_setenv, arg); } break; @@ -2138,7 +2112,7 @@ lookup_opcode_name(opcode)); } if (*activep && uvalue == 0) { - array_append(filename, linenum, + opt_array_append(filename, linenum, lookup_opcode_name(opcode), chararrayptr, uintptr, arg2); } @@ -2300,7 +2274,7 @@ value2 = 1; if (!*activep) continue; - array_append(filename, linenum, + opt_array_append(filename, linenum, "AuthenticationMethods", &options->auth_methods, &options->num_auth_methods, arg);