From: dtucker@openbsd.org Date: Fri, 29 May 2020 11:17:56 +0000 (+0000) Subject: upstream: Make dollar_expand variadic and pass a real va_list to X-Git-Tag: V_8_4_P1~147 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=712ac1efb687a945a89db6aa3e998c1a17b38653;p=thirdparty%2Fopenssh-portable.git upstream: Make dollar_expand variadic and pass a real va_list to vdollar_percent_expand. Fixes build error on arm64 spotted by otto@. OpenBSD-Commit-ID: 181910d7ae489f40ad609b4cf4a20f3d068a7279 --- diff --git a/misc.c b/misc.c index 9ba913c3e..f29e9bc3a 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.151 2020/05/29 09:02:44 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.152 2020/05/29 11:17:56 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -1207,13 +1207,22 @@ vdollar_percent_expand(int *parseerror, int dollar, int percent, #undef EXPAND_MAX_KEYS } +/* + * Expand only environment variables. + * Note that although this function is variadic like the other similar + * functions, any such arguments will be unused. + */ + char * -dollar_expand(int *parseerr, const char *string) +dollar_expand(int *parseerr, const char *string, ...) { char *ret; int err; + va_list ap; - ret = vdollar_percent_expand(&err, 1, 0, string, NULL); + va_start(ap, string); + ret = vdollar_percent_expand(&err, 1, 0, string, ap); + va_end(ap); if (parseerr != NULL) *parseerr = err; return ret; diff --git a/misc.h b/misc.h index 7e9f5ac19..ab94a79c0 100644 --- a/misc.h +++ b/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.86 2020/05/29 04:25:40 dtucker Exp $ */ +/* $OpenBSD: misc.h,v 1.87 2020/05/29 11:17:56 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -69,7 +69,7 @@ long convtime(const char *); const char *fmt_timeframe(time_t t); char *tilde_expand_filename(const char *, uid_t); -char *dollar_expand(int *, const char *string); +char *dollar_expand(int *, const char *string, ...); char *percent_expand(const char *, ...) __attribute__((__sentinel__)); char *percent_dollar_expand(const char *, ...) __attribute__((__sentinel__)); char *tohex(const void *, size_t);