From: djm@openbsd.org Date: Mon, 15 Sep 2025 04:39:58 +0000 (+0000) Subject: upstream: fix memleak of channel forwarding permissions; ok X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fae8e41741d23298c94a1ea3ef8704a1cc186cb5;p=thirdparty%2Fopenssh-portable.git upstream: fix memleak of channel forwarding permissions; ok dtucker@ OpenBSD-Commit-ID: 069745547109bc8fcc09fab5b19c53599cae99fd --- diff --git a/channels.c b/channels.c index 2a4cb0e31..aeb0d41d6 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.448 2025/08/18 03:43:01 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.449 2025/09/15 04:39:58 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -4588,10 +4588,13 @@ void channel_clear_permission(struct ssh *ssh, int who, int where) { struct permission **permp; - u_int *npermp; + u_int i, *npermp; permission_set_get_array(ssh, who, where, &permp, &npermp); - *permp = xrecallocarray(*permp, *npermp, 0, sizeof(**permp)); + for (i = 0; i < *npermp; i++) + fwd_perm_clear((*permp) + i); + free(*permp); + *permp = NULL; *npermp = 0; }