]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix prepend_err_str in LDAP KDB module
authorGreg Hudson <ghudson@mit.edu>
Tue, 29 Jan 2013 18:13:04 +0000 (13:13 -0500)
committerGreg Hudson <ghudson@mit.edu>
Tue, 29 Jan 2013 18:13:04 +0000 (13:13 -0500)
Use the oerr parameter to fetch the existing message.  Stop handling
oerr == 0, since no call sites were using it.  Free the old error
message before returning.

src/plugins/kdb/ldap/libkdb_ldap/kdb_ldap.c

index e64d22d1ddc8081f9f395c29b7d4714ce68ee963..4e0a9e8d78fead1ca25c7d0ed53618fdaba890a9 100644 (file)
@@ -307,9 +307,10 @@ prepend_err_str(krb5_context ctx, const char *str, krb5_error_code err,
                 krb5_error_code oerr)
 {
     const char *omsg;
-    if (oerr == 0) oerr = err;
-    omsg = krb5_get_error_message (ctx, err);
-    krb5_set_error_message (ctx, err, "%s %s", str, omsg);
+
+    omsg = krb5_get_error_message(ctx, oerr);
+    krb5_set_error_message(ctx, err, "%s %s", str, omsg);
+    krb5_free_error_message(ctx, omsg);
 }
 
 extern krb5int_access accessor;