diff options
Diffstat (limited to 'source3/libads')
-rw-r--r-- | source3/libads/kerberos.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c index a80837cf4d..b586d84226 100644 --- a/source3/libads/kerberos.c +++ b/source3/libads/kerberos.c @@ -114,7 +114,14 @@ int ads_kinit_password(ADS_STRUCT *ads) char *s; int ret; - asprintf(&s, "%s@%s", ads->auth.user_name, ads->auth.realm); + if (asprintf(&s, "%s@%s", ads->auth.user_name, ads->auth.realm) == -1) { + return KRB5_CC_NOMEM; + } + + if (!ads->auth.password) { + return KRB5_LIBOS_CANTREADPWD; + } + ret = kerberos_kinit_password(s, ads->auth.password, ads->auth.time_offset); if (ret) { |