diff options
| author | Greg Hudson <ghudson@mit.edu> | 2009-05-02 04:58:19 +0000 |
|---|---|---|
| committer | Greg Hudson <ghudson@mit.edu> | 2009-05-02 04:58:19 +0000 |
| commit | 6cfaeecbbac3f2420b724cd8e62d1ea98288bc05 (patch) | |
| tree | b8b5f9a9fbf078995691b702332f50ce2afe6dc0 /src/lib | |
| parent | 397c8078cdfaf400fb32e0b2f4098efad9566500 (diff) | |
| download | krb5-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.c | 9 |
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); } |
