summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2019-01-20 22:54:30 +0000
committerDamien Miller <djm@mindrot.org>2019-01-21 10:54:37 +1100
commit854bd8674ee5074a239f7cadf757d55454802e41 (patch)
tree876a273c092424c71042c6afff2568adfaf40330
parent93f02107f44d63a016d8c23ebd2ca9205c495c48 (diff)
downloadopenssh-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.c12
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]);