]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: check access(ssh-sk-helper, X_OK) to provide friendly
authordjm@openbsd.org <djm@openbsd.org>
Tue, 21 Jan 2020 07:07:31 +0000 (07:07 +0000)
committerDamien Miller <djm@mindrot.org>
Tue, 21 Jan 2020 07:09:25 +0000 (18:09 +1100)
error message for misconfigured helper paths

OpenBSD-Commit-ID: 061bcc262155d12e726305c91394ac0aaf1f8341

ssh-sk-client.c

index 9121570dc7c5ab667d785f18de8fe8d20898067d..359327b68bb2509666c6c4d9cc3d3d8344ec0482 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-sk-client.c,v 1.5 2020/01/10 23:43:26 djm Exp $ */
+/* $OpenBSD: ssh-sk-client.c,v 1.6 2020/01/21 07:07:31 djm Exp $ */
 /*
  * Copyright (c) 2019 Google LLC
  *
@@ -21,6 +21,7 @@
 #include <sys/socket.h>
 #include <sys/wait.h>
 
+#include <fcntl.h>
 #include <limits.h>
 #include <errno.h>
 #include <signal.h>
@@ -56,6 +57,13 @@ start_helper(int *fdp, pid_t *pidp, void (**osigchldp)(int))
        helper = getenv("SSH_SK_HELPER");
        if (helper == NULL || strlen(helper) == 0)
                helper = _PATH_SSH_SK_HELPER;
+       if (access(helper, X_OK) != 0) {
+               oerrno = errno;
+               error("%s: helper \"%s\" unusable: %s", __func__, helper,
+                   strerror(errno));
+               errno = oerrno;
+               return SSH_ERR_SYSTEM_ERROR;
+       }
 #ifdef DEBUG_SK
        verbosity = "-vvv";
 #endif