@@ -638,6 +638,12 @@ gss_result* authenticate_user_krb5pwd(const char* user,
638
638
char * name = NULL ;
639
639
char * p = NULL ;
640
640
641
+ // for verify
642
+ krb5_creds creds;
643
+ krb5_get_init_creds_opt gic_options;
644
+ krb5_error_code verifyRet;
645
+ char *vName = NULL ;
646
+
641
647
code = krb5_init_context (&kcontext);
642
648
if (code) {
643
649
result =
@@ -679,11 +685,13 @@ gss_result* authenticate_user_krb5pwd(const char* user,
679
685
}
680
686
681
687
// verify krb5 user
682
- krb5_creds creds;
683
- krb5_get_init_creds_opt gic_options;
684
- krb5_error_code verifyRet;
685
-
686
688
memset (&creds, 0 , sizeof (creds));
689
+
690
+ verifyRet = krb5_unparse_name (kcontext, client, &vName);
691
+ if (verifyRet == 0 ) {
692
+ free (vName);
693
+ }
694
+
687
695
krb5_get_init_creds_opt_init (&gic_options);
688
696
verifyRet = krb5_get_init_creds_password (
689
697
kcontext, &creds, client, (char *)pswd, NULL , NULL , 0 , NULL , &gic_options);
@@ -761,7 +769,7 @@ static gss_result* gss_error_result_with_message(const char* message) {
761
769
static gss_result* gss_error_result_with_message_and_code (const char * message, int code) {
762
770
gss_result* result = (gss_result*)malloc (sizeof (gss_result));
763
771
result->code = AUTH_GSS_ERROR;
764
- result->message = (char *)malloc (strlen (message) + 5 );
772
+ result->message = (char *)malloc (strlen (message) + 20 );
765
773
sprintf (result->message , " %s (%d)" , message, code);
766
774
return result;
767
775
}
0 commit comments