@@ -26,7 +26,6 @@ uint32_t gssntlm_init_sec_context(uint32_t *minor_status,
26
26
struct gssntlm_ctx * ctx ;
27
27
struct gssntlm_name * server = NULL ;
28
28
struct gssntlm_cred * cred = NULL ;
29
- char * computer_name = NULL ;
30
29
char * nb_computer_name = NULL ;
31
30
char * nb_domain_name = NULL ;
32
31
struct gssntlm_name * client_name = NULL ;
@@ -165,13 +164,8 @@ uint32_t gssntlm_init_sec_context(uint32_t *minor_status,
165
164
if (retmaj ) goto done ;
166
165
}
167
166
168
- computer_name = strdup (client_name -> data .server .name );
169
- if (!computer_name ) {
170
- set_GSSERR (ENOMEM );
171
- goto done ;
172
- }
173
-
174
- retmin = netbios_get_names (ctx -> external_context , computer_name ,
167
+ retmin = netbios_get_names (ctx -> external_context ,
168
+ client_name -> data .server .name ,
175
169
& nb_computer_name , & nb_domain_name );
176
170
if (retmin ) {
177
171
set_GSSERR (retmin );
@@ -433,7 +427,6 @@ uint32_t gssntlm_init_sec_context(uint32_t *minor_status,
433
427
gssntlm_release_cred (& tmpmin , (gss_cred_id_t * )& cred );
434
428
}
435
429
gssntlm_release_name (& tmpmin , (gss_name_t * )& client_name );
436
- safefree (computer_name );
437
430
safefree (nb_computer_name );
438
431
safefree (nb_domain_name );
439
432
safefree (trgt_name );
@@ -532,7 +525,6 @@ uint32_t gssntlm_accept_sec_context(uint32_t *minor_status,
532
525
int lm_compat_lvl = -1 ;
533
526
struct ntlm_buffer challenge = { 0 };
534
527
struct gssntlm_name * server_name = NULL ;
535
- char * computer_name = NULL ;
536
528
char * nb_computer_name = NULL ;
537
529
char * nb_domain_name = NULL ;
538
530
char * chal_target_name ;
@@ -618,13 +610,8 @@ uint32_t gssntlm_accept_sec_context(uint32_t *minor_status,
618
610
goto done ;
619
611
}
620
612
621
- computer_name = strdup (server_name -> data .server .name );
622
- if (!computer_name ) {
623
- set_GSSERR (ENOMEM );
624
- goto done ;
625
- }
626
-
627
- retmin = netbios_get_names (ctx -> external_context , computer_name ,
613
+ retmin = netbios_get_names (ctx -> external_context ,
614
+ server_name -> data .server .name ,
628
615
& nb_computer_name , & nb_domain_name );
629
616
if (retmin ) {
630
617
set_GSSERR (retmin );
@@ -731,15 +718,19 @@ uint32_t gssntlm_accept_sec_context(uint32_t *minor_status,
731
718
goto done ;
732
719
}
733
720
721
+ av_flags = MSVAVFLAGS_UNVERIFIED_SPN ;
722
+
734
723
timestamp = ntlm_timestamp_now ();
735
724
736
725
retmin = ntlm_encode_target_info (ctx -> ntlm ,
737
726
nb_computer_name ,
738
727
nb_domain_name ,
739
- computer_name ,
728
+ server_name -> data . server . name ,
740
729
NULL , NULL ,
741
- NULL , & timestamp ,
742
- NULL , NULL , NULL ,
730
+ & av_flags , & timestamp ,
731
+ NULL ,
732
+ server_name -> data .server .spn ,
733
+ NULL ,
743
734
& target_info );
744
735
if (retmin ) {
745
736
set_GSSERR (retmin );
@@ -1028,7 +1019,6 @@ uint32_t gssntlm_accept_sec_context(uint32_t *minor_status,
1028
1019
gssntlm_release_name (& tmpmin , (gss_name_t * )& server_name );
1029
1020
gssntlm_release_name (& tmpmin , (gss_name_t * )& gss_usrname );
1030
1021
gssntlm_release_cred (& tmpmin , (gss_cred_id_t * )& usr_cred );
1031
- safefree (computer_name );
1032
1022
safefree (nb_computer_name );
1033
1023
safefree (nb_domain_name );
1034
1024
safefree (usr_name );
0 commit comments