From: djm@openbsd.org Date: Wed, 27 May 2020 21:25:18 +0000 (+0000) Subject: upstream: fix crash in recallocarray when deleting SendEnv X-Git-Tag: V_8_4_P1~166 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16ea1fdbe736648f79a827219134331f8d9844fb;p=thirdparty%2Fopenssh-portable.git upstream: fix crash in recallocarray when deleting SendEnv variables; spotted by & ok sthen@ OpenBSD-Commit-ID: b881e8e849edeec5082b5c0a87d8d7cff091a8fd --- diff --git a/readconf.c b/readconf.c index 2afcbaeca..63ed7fd5f 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.329 2020/04/24 03:33:21 dtucker Exp $ */ +/* $OpenBSD: readconf.c,v 1.330 2020/05/27 21:25:18 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -735,7 +735,7 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, static void rm_env(Options *options, const char *arg, const char *filename, int linenum) { - int i, j; + int i, j, onum_send_env = options->num_send_env; char *cp; /* Remove an environment variable */ @@ -758,6 +758,11 @@ rm_env(Options *options, const char *arg, const char *filename, int linenum) options->num_send_env--; /* NB. don't increment i */ } + if (onum_send_env != options->num_send_env) { + options->send_env = xrecallocarray(options->send_env, + onum_send_env, options->num_send_env, + sizeof(*options->send_env)); + } } /*