summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2009-05-02 04:58:19 +0000
committerGreg Hudson <ghudson@mit.edu>2009-05-02 04:58:19 +0000
commit6cfaeecbbac3f2420b724cd8e62d1ea98288bc05 (patch)
treeb8b5f9a9fbf078995691b702332f50ce2afe6dc0 /src/lib
parent397c8078cdfaf400fb32e0b2f4098efad9566500 (diff)
downloadkrb5-6cfaeecbbac3f2420b724cd8e62d1ea98288bc05.tar.gz
krb5-6cfaeecbbac3f2420b724cd8e62d1ea98288bc05.tar.xz
krb5-6cfaeecbbac3f2420b724cd8e62d1ea98288bc05.zip
Fix a memory leak in krb5int_rd_chpw_rep in a block of code handling
buggy MS KDC behavior. It's not entirely clear what should happen in the case where memory was leaked (error packet received containing e_data) so pick a conservative option. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22303 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/krb/chpw.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/krb5/krb/chpw.c b/src/lib/krb5/krb/chpw.c
index d0cadb4bb..13adbd6ae 100644
--- a/src/lib/krb5/krb/chpw.c
+++ b/src/lib/krb5/krb/chpw.c
@@ -110,11 +110,12 @@ krb5int_rd_chpw_rep(krb5_context context, krb5_auth_context auth_context,
if ((ret = krb5_rd_error(context, packet, &krberror)))
return(ret);
- if (krberror->e_data.data == NULL) {
+ if (krberror->e_data.data == NULL)
ret = ERROR_TABLE_BASE_krb5 + (krb5_error_code) krberror->error;
- krb5_free_error(context, krberror);
- return (ret);
- }
+ else
+ ret = KRB5KRB_AP_ERR_MODIFIED;
+ krb5_free_error(context, krberror);
+ return(ret);
} else {
return(KRB5KRB_AP_ERR_MODIFIED);
}