summaryrefslogtreecommitdiffstats
path: root/src/responder/ssh/sshsrv.c
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2013-04-26 09:53:47 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-05-07 14:23:51 +0200
commit728b10c81204929be5669c1e67bd086e09c47c00 (patch)
tree65ca341e759ee75126e24d21d2dea3d53ea71f36 /src/responder/ssh/sshsrv.c
parentf54b271376b23cb968eafb9ffd5100c6dadad2a7 (diff)
downloadsssd-728b10c81204929be5669c1e67bd086e09c47c00.tar.gz
sssd-728b10c81204929be5669c1e67bd086e09c47c00.tar.xz
sssd-728b10c81204929be5669c1e67bd086e09c47c00.zip
SSH: Fix parsing of names from client requests
Try to parse names in the form user@domain first, as that's what sss_ssh_* send in requests when the --domain option is used. Do not parse host names using domain-specific regular expression.
Diffstat (limited to 'src/responder/ssh/sshsrv.c')
-rw-r--r--src/responder/ssh/sshsrv.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/responder/ssh/sshsrv.c b/src/responder/ssh/sshsrv.c
index 8a66f2239..410e631af 100644
--- a/src/responder/ssh/sshsrv.c
+++ b/src/responder/ssh/sshsrv.c
@@ -118,6 +118,14 @@ int ssh_process_init(TALLOC_CTX *mem_ctx,
ssh_ctx->rctx = rctx;
ssh_ctx->rctx->pvt_ctx = ssh_ctx;
+ ret = sss_names_init_from_args(ssh_ctx,
+ "(?P<name>[^@]+)@?(?P<domain>[^@]*$)",
+ "%1$s@%2$s", &ssh_ctx->snctx);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_FATAL_FAILURE, ("fatal error initializing regex data\n"));
+ goto fail;
+ }
+
/* Enable automatic reconnection to the Data Provider */
ret = confdb_get_int(ssh_ctx->rctx->cdb,
CONFDB_SSH_CONF_ENTRY,