]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: allow override of the pkcs#11 helper binary via
authordjm@openbsd.org <djm@openbsd.org>
Sun, 20 Jan 2019 22:54:30 +0000 (22:54 +0000)
committerDamien Miller <djm@mindrot.org>
Sun, 20 Jan 2019 23:54:37 +0000 (10:54 +1100)
$SSH_PKCS11_HELPER; needed for regress tests.

work by markus@, ok me

OpenBSD-Commit-ID: f78d8185500bd7c37aeaf7bd27336db62f0f7a83

ssh-pkcs11-client.c

index 6e16b2f9adddb1a0409875d492754b6ab6cb52ed..de5aa830551571faac27bcb07c51523927455277 100644 (file)
@@ -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]);