mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
r17017: BUG 3916: fix pam config file parsing in pam_winbind.
Patch from Dietrich Streifert <dietrich.streifert@visionet.de>
This commit is contained in:
parent
f6e3ee147f
commit
8d62188258
@ -47,15 +47,17 @@ static int _pam_parse(int argc, const char **argv, dictionary **d)
|
|||||||
{
|
{
|
||||||
int ctrl = 0;
|
int ctrl = 0;
|
||||||
const char *config_file = NULL;
|
const char *config_file = NULL;
|
||||||
|
int i;
|
||||||
|
const char **v;
|
||||||
|
|
||||||
if (d == NULL) {
|
if (d == NULL) {
|
||||||
goto config_from_pam;
|
goto config_from_pam;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (; argc-- > 0; ++argv) {
|
for (i=argc,v=argv; i-- > 0; ++v) {
|
||||||
if (!strncasecmp(*argv, "config", strlen("config"))) {
|
if (!strncasecmp(*v, "config", strlen("config"))) {
|
||||||
ctrl |= WINBIND_CONFIG_FILE;
|
ctrl |= WINBIND_CONFIG_FILE;
|
||||||
config_file = argv[argc];
|
config_file = v[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -92,31 +94,31 @@ static int _pam_parse(int argc, const char **argv, dictionary **d)
|
|||||||
|
|
||||||
config_from_pam:
|
config_from_pam:
|
||||||
/* step through arguments */
|
/* step through arguments */
|
||||||
for (; argc-- > 0; ++argv) {
|
for (i=argc,v=argv; i-- > 0; ++v) {
|
||||||
|
|
||||||
/* generic options */
|
/* generic options */
|
||||||
if (!strcmp(*argv,"debug"))
|
if (!strcmp(*v,"debug"))
|
||||||
ctrl |= WINBIND_DEBUG_ARG;
|
ctrl |= WINBIND_DEBUG_ARG;
|
||||||
else if (!strcasecmp(*argv, "use_authtok"))
|
else if (!strcasecmp(*v, "use_authtok"))
|
||||||
ctrl |= WINBIND_USE_AUTHTOK_ARG;
|
ctrl |= WINBIND_USE_AUTHTOK_ARG;
|
||||||
else if (!strcasecmp(*argv, "use_first_pass"))
|
else if (!strcasecmp(*v, "use_first_pass"))
|
||||||
ctrl |= WINBIND_USE_FIRST_PASS_ARG;
|
ctrl |= WINBIND_USE_FIRST_PASS_ARG;
|
||||||
else if (!strcasecmp(*argv, "try_first_pass"))
|
else if (!strcasecmp(*v, "try_first_pass"))
|
||||||
ctrl |= WINBIND_TRY_FIRST_PASS_ARG;
|
ctrl |= WINBIND_TRY_FIRST_PASS_ARG;
|
||||||
else if (!strcasecmp(*argv, "unknown_ok"))
|
else if (!strcasecmp(*v, "unknown_ok"))
|
||||||
ctrl |= WINBIND_UNKNOWN_OK_ARG;
|
ctrl |= WINBIND_UNKNOWN_OK_ARG;
|
||||||
else if (!strncasecmp(*argv, "require_membership_of", strlen("require_membership_of")))
|
else if (!strncasecmp(*v, "require_membership_of", strlen("require_membership_of")))
|
||||||
ctrl |= WINBIND_REQUIRED_MEMBERSHIP;
|
ctrl |= WINBIND_REQUIRED_MEMBERSHIP;
|
||||||
else if (!strncasecmp(*argv, "require-membership-of", strlen("require-membership-of")))
|
else if (!strncasecmp(*v, "require-membership-of", strlen("require-membership-of")))
|
||||||
ctrl |= WINBIND_REQUIRED_MEMBERSHIP;
|
ctrl |= WINBIND_REQUIRED_MEMBERSHIP;
|
||||||
else if (!strcasecmp(*argv, "krb5_auth"))
|
else if (!strcasecmp(*v, "krb5_auth"))
|
||||||
ctrl |= WINBIND_KRB5_AUTH;
|
ctrl |= WINBIND_KRB5_AUTH;
|
||||||
else if (!strncasecmp(*argv, "krb5_ccache_type", strlen("krb5_ccache_type")))
|
else if (!strncasecmp(*v, "krb5_ccache_type", strlen("krb5_ccache_type")))
|
||||||
ctrl |= WINBIND_KRB5_CCACHE_TYPE;
|
ctrl |= WINBIND_KRB5_CCACHE_TYPE;
|
||||||
else if (!strcasecmp(*argv, "cached_login"))
|
else if (!strcasecmp(*v, "cached_login"))
|
||||||
ctrl |= WINBIND_CACHED_LOGIN;
|
ctrl |= WINBIND_CACHED_LOGIN;
|
||||||
else {
|
else {
|
||||||
_pam_log(LOG_ERR, "pam_parse: unknown option; %s", *argv);
|
_pam_log(LOG_ERR, "pam_parse: unknown option; %s", *v);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user