sudo/sudo-1.8.19p2-dont_overwrite_ret_val.patch

58 lines
2.0 KiB
Diff
Raw Normal View History

# HG changeset patch
# User Todd C. Miller <Todd.Miller@courtesan.com>
# Date 1484590826 25200
# Node ID 448baff2b586d8b777d9e5c01ce8e58d61d62b9a
# Parent 3d87a008671c73ff8c058ce8576cc791d50086cc
Don't overwrite the return value of ldap_sasl_interactive_bind_s()
by the subsequent call to sudo_set_krb5_ccache_name(). From Paul
Zirnik of SUSE.
diff -r 3d87a008671c -r 448baff2b586 plugins/sudoers/ldap.c
--- a/plugins/sudoers/ldap.c Mon Jan 16 11:12:56 2017 -0700
+++ b/plugins/sudoers/ldap.c Mon Jan 16 11:20:26 2017 -0700
@@ -3002,7 +3002,7 @@
static int
sudo_ldap_bind_s(LDAP *ld)
{
- int ret;
+ int rc, ret;
debug_decl(sudo_ldap_bind_s, SUDOERS_DEBUG_LDAP)
#ifdef HAVE_LDAP_SASL_INTERACTIVE_BIND_S
@@ -3025,27 +3025,27 @@
}
if (new_ccname != NULL) {
- ret = sudo_set_krb5_ccache_name(new_ccname, &old_ccname);
- if (ret == 0) {
+ rc = sudo_set_krb5_ccache_name(new_ccname, &old_ccname);
+ if (rc == 0) {
sudo_debug_printf(SUDO_DEBUG_INFO|SUDO_DEBUG_LINENO,
"set ccache name %s -> %s",
old_ccname ? old_ccname : "(none)", new_ccname);
} else {
sudo_debug_printf(SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO,
- "sudo_set_krb5_ccache_name() failed: %d", ret);
+ "sudo_set_krb5_ccache_name() failed: %d", rc);
}
}
ret = ldap_sasl_interactive_bind_s(ld, ldap_conf.binddn, "GSSAPI",
NULL, NULL, LDAP_SASL_QUIET, sudo_ldap_sasl_interact, auth_id);
if (new_ccname != NULL) {
- ret = sudo_set_krb5_ccache_name(old_ccname ? old_ccname : "", NULL);
- if (ret == 0) {
+ rc = sudo_set_krb5_ccache_name(old_ccname ? old_ccname : "", NULL);
+ if (rc == 0) {
sudo_debug_printf(SUDO_DEBUG_INFO|SUDO_DEBUG_LINENO,
"restore ccache name %s -> %s", new_ccname,
old_ccname ? old_ccname : "(none)");
} else {
sudo_debug_printf(SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO,
- "sudo_set_krb5_ccache_name() failed: %d", ret);
+ "sudo_set_krb5_ccache_name() failed: %d", rc);
}
/* Remove temporary copy of user's credential cache. */
if (tmp_ccname != NULL)