diff options
author | djm@openbsd.org <djm@openbsd.org> | 2019-01-20 22:54:30 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-01-21 10:54:37 +1100 |
commit | 854bd8674ee5074a239f7cadf757d55454802e41 (patch) | |
tree | 876a273c092424c71042c6afff2568adfaf40330 | |
parent | 93f02107f44d63a016d8c23ebd2ca9205c495c48 (diff) | |
download | openssh-git-854bd8674ee5074a239f7cadf757d55454802e41.tar.gz |
upstream: allow override of the pkcs#11 helper binary via
$SSH_PKCS11_HELPER; needed for regress tests.
work by markus@, ok me
OpenBSD-Commit-ID: f78d8185500bd7c37aeaf7bd27336db62f0f7a83
-rw-r--r-- | ssh-pkcs11-client.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ssh-pkcs11-client.c b/ssh-pkcs11-client.c index 6e16b2f9..de5aa830 100644 --- a/ssh-pkcs11-client.c +++ b/ssh-pkcs11-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-pkcs11-client.c,v 1.12 2019/01/20 22:51:37 djm Exp $ */ +/* $OpenBSD: ssh-pkcs11-client.c,v 1.13 2019/01/20 22:54:30 djm Exp $ */ /* * Copyright (c) 2010 Markus Friedl. All rights reserved. * Copyright (c) 2014 Pedro Martelletto. All rights reserved. @@ -245,6 +245,7 @@ static int pkcs11_start_helper(void) { int pair[2]; + char *helper; if (pkcs11_start_helper_methods() == -1) { error("pkcs11_start_helper_methods failed"); @@ -266,10 +267,11 @@ pkcs11_start_helper(void) } close(pair[0]); close(pair[1]); - execlp(_PATH_SSH_PKCS11_HELPER, _PATH_SSH_PKCS11_HELPER, - (char *)NULL); - fprintf(stderr, "exec: %s: %s\n", _PATH_SSH_PKCS11_HELPER, - strerror(errno)); + helper = getenv("SSH_PKCS11_HELPER"); + if (helper == NULL || strlen(helper) == 0) + helper = _PATH_SSH_PKCS11_HELPER; + execlp(helper, helper, (char *)NULL); + fprintf(stderr, "exec: %s: %s\n", helper, strerror(errno)); _exit(1); } close(pair[1]); |