]> git.ipfire.org Git - thirdparty/krb5.git/commit
Try harder to avoid password change replay errors 1242/head
authorGreg Hudson <ghudson@mit.edu>
Fri, 4 Mar 2022 05:45:00 +0000 (00:45 -0500)
committerGreg Hudson <ghudson@mit.edu>
Thu, 17 Mar 2022 17:34:40 +0000 (13:34 -0400)
commit6297788e24cefa8f3fdd36f514e2e6569fa7b34a
tree4ed0a39b7e459c24c7dd70e8ad5fc0228f092219
parentcbfe46ce20f3e9265baa9c648390148c739ab830
Try harder to avoid password change replay errors

Commit d7b3018d338fc9c989c3fa17505870f23c3759a8 (ticket 7905) changed
change_set_password() to prefer TCP.  However, because UDP_LAST falls
back to UDP after one second, we can still get a replay error due to a
dropped packet, before the TCP layer has a chance to retry.

Instead, try k5_sendto() with NO_UDP, and only fall back to UDP after
TCP fails completely without reaching a server.  In sendto_kdc.c,
implement an ONLY_UDP transport strategy to allow the UDP fallback.

ticket: 9037
src/lib/krb5/os/changepw.c
src/lib/krb5/os/os-proto.h
src/lib/krb5/os/sendto_kdc.c