[krbdev.mit.edu #5393] krb5-1.6: tcp kpasswd service required if only admin_server is specified in krb5.conf

Public Submitter via RT rt-comment at krbdev.mit.edu
Thu Jan 18 09:22:14 EST 2007


[jaltman - Thu Jan 18 07:55:20 2007]:

> I suspect that patch that you are looking for is this.   Please 
confirm
> that it addresses your issue and I will commit it.
> 
> Index: changepw.c
> ===================================================================
> --- changepw.c  (revision 19063)
> +++ changepw.c  (working copy)
> @@ -70,12 +70,14 @@
>                                       locate_service_kadmin,
> SOCK_STREAM, 0);
>         if (!code) {
>             /* Success with admin_server but now we need to change 
the
> -              port number to use DEFAULT_KPASSWD_PORT.  */
> +              port number to use DEFAULT_KPASSWD_PORT and the 
socktype.  */
>             int i;
>             for (i=0; i<addrlist->naddrs; i++) {
>                 struct addrinfo *a = addrlist->addrs[i].ai;
>                 if (a->ai_family == AF_INET)
>                     sa2sin (a->ai_addr)->sin_port =
> htons(DEFAULT_KPASSWD_PORT);
> +               if (sockType != SOCK_STREAM)
> +                   a->ai_socktype == sockType;
>             }
>         }
>      }
> 

Sorry, does not work. It still tries tcp. I confirmed that the 
socktype was changed, but :

krb5int_sendto(callback=0xbfe3d3e8, addrlist=2{0x80055780=stream 
10.10.101.132.464,0x800554e0=stream 10.10.101.132.464})
maybe_send(@0x8005543c) state=INITIALIZING type=tcp
abandoning connection 5: 22/Invalid Argument

Btw: If this call with static SOCK_STREAM is correct, why is call 
three lines above 

 code = krb5int_locate_server (context, realm, addrlist,
                               locate_service_kpasswd, sockType, 0);

with sockType correct? 



More information about the krb5-bugs mailing list