When kdc_fast_handle_error() produces a FAST-encoded error, it puts it into err->e_data and it never gets freed (since in the non-FAST case, err->e_data contains aliased pointers). Fix this by storing the encoded error in an output variable which is placed into the error's e_data by the caller and then freed. https://github.com/krb5/krb5/commit/b5d9f6e92ac9291c6f352a2d86b4b0bf9f74fc1f Commit By: ghudson Revision: 24722 Changed Files: U trunk/src/kdc/do_as_req.c U trunk/src/kdc/do_tgs_req.c U trunk/src/kdc/fast_util.c U trunk/src/kdc/kdc_util.h