From: Howard Chu Date: Wed, 3 Jun 2009 01:46:37 +0000 (+0000) Subject: Add tty to authz params X-Git-Tag: ACLCHECK_0~523 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=2d93461817019ed2d9e7f83b667e6c20cf19f7a9;p=openldap Add tty to authz params --- diff --git a/contrib/slapd-modules/nssov/nss-ldapd/nss/pam.c b/contrib/slapd-modules/nssov/nss-ldapd/nss/pam.c index 77d00a134f..3e724b26f4 100644 --- a/contrib/slapd-modules/nssov/nss-ldapd/nss/pam.c +++ b/contrib/slapd-modules/nssov/nss-ldapd/nss/pam.c @@ -359,14 +359,15 @@ static enum nss_status pam_read_authz( static enum nss_status pam_do_authz( pld_ctx *ctx, const char *svc, const char *ruser, const char *rhost, - int *errnop) + const char *tty, int *errnop) { NSS_BYGEN(NSLCD_ACTION_PAM_AUTHZ, WRITE_STRING(fp,ctx->user); WRITE_STRING(fp,ctx->dn); WRITE_STRING(fp,svc); WRITE_STRING(fp,ruser); - WRITE_STRING(fp,rhost), + WRITE_STRING(fp,rhost); + WRITE_STRING(fp,tty), pam_read_authz(fp,ctx,errnop)); } @@ -374,7 +375,7 @@ int pam_sm_acct_mgmt( pam_handle_t *pamh, int flags, int argc, const char **argv) { int rc, err; - const char *username, *svc, *ruser, *rhost; + const char *username, *svc, *ruser, *rhost, *tty; int no_warn = 0, ignore_flags = 0; int i; struct pam_conv *appconv; @@ -427,6 +428,11 @@ int pam_sm_acct_mgmt( rc = pam_get_item (pamh, PAM_RHOST, (CONST_ARG void **) &rhost); if (rc != PAM_SUCCESS) return rc; + + rc = pam_get_item (pamh, PAM_TTY, (CONST_ARG void **) &tty); + if (rc != PAM_SUCCESS) + return rc; + ctx2.dn = ctx->dn; ctx2.user = ctx->user; rc = pam_do_authz(&ctx2, svc, ruser, rhost, &err); diff --git a/contrib/slapd-modules/nssov/pam.c b/contrib/slapd-modules/nssov/pam.c index a87d6c444a..2009f310c1 100644 --- a/contrib/slapd-modules/nssov/pam.c +++ b/contrib/slapd-modules/nssov/pam.c @@ -255,7 +255,7 @@ static struct berval uidmsg = int pam_authz(nssov_info *ni,TFILE *fp,Operation *op) { - struct berval dn, uid, svc, ruser, rhost; + struct berval dn, uid, svc, ruser, rhost, tty; struct berval authzmsg = BER_BVNULL; int32_t tmpint32; char dnc[1024]; @@ -263,6 +263,7 @@ int pam_authz(nssov_info *ni,TFILE *fp,Operation *op) char svcc[256]; char ruserc[32]; char rhostc[256]; + char ttyc[256]; int rc = NSLCD_PAM_SUCCESS; Entry *e = NULL; Attribute *a; @@ -284,6 +285,9 @@ int pam_authz(nssov_info *ni,TFILE *fp,Operation *op) READ_STRING_BUF2(fp,svcc,sizeof(rhostc)); rhost.bv_val = rhostc; rhost.bv_len = tmpint32; + READ_STRING_BUF2(fp,svcc,sizeof(ttyc)); + tty.bv_val = ttyc; + tty.bv_len = tmpint32; Debug(LDAP_DEBUG_TRACE,"nssov_pam_authz(%s)\n",dn.bv_val,0,0);