diff options
author | djm@openbsd.org <djm@openbsd.org> | 2018-10-03 06:38:35 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2018-10-03 16:39:58 +1000 |
commit | 5eff5b858e717e901e6af6596306a114de9f79f2 (patch) | |
tree | 1e89894968478a2c5b44cabd9747fd90d51725e1 /misc.c | |
parent | a46ac4d86b25414d78b632e8173578b37e5f8a83 (diff) | |
download | openssh-git-5eff5b858e717e901e6af6596306a114de9f79f2.tar.gz |
upstream: Allow ssh_config IdentityAgent directive to accept
environment variable names as well as explicit paths. ok dtucker@
OpenBSD-Commit-ID: 2f0996e103876c53d8c9dd51dcce9889d700767b
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 21 |
1 files changed, 20 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.131 2018/07/27 05:13:02 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.132 2018/10/03 06:38:35 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005,2006 Damien Miller. All rights reserved. @@ -1948,6 +1948,25 @@ bad: return 0; } +/* + * Verify that a environment variable name (not including initial '$') is + * valid; consisting of one or more alphanumeric or underscore characters only. + * Returns 1 on valid, 0 otherwise. + */ +int +valid_env_name(const char *name) +{ + const char *cp; + + if (name[0] == '\0') + return 0; + for (cp = name; *cp != '\0'; cp++) { + if (!isalnum((u_char)*cp) && *cp != '_') + return 0; + } + return 1; +} + const char * atoi_err(const char *nptr, int *val) { |