From 3116e7ca102e3170b53d78a29c581b80cc8d61b9 Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Mon, 10 Nov 2008 19:51:20 +0000
Subject: [PATCH] ITS#5762

---
 CHANGES                      | 1 +
 libraries/libldap/pagectrl.c | 2 ++
 libraries/libldap/sortctrl.c | 1 +
 libraries/libldap/stctrl.c   | 1 +
 libraries/libldap/vlvctrl.c  | 1 +
 5 files changed, 6 insertions(+)

diff --git a/CHANGES b/CHANGES
index e03db01ff6..27080f6e71 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,7 @@ OpenLDAP 2.4 Change Log
 
 OpenLDAP 2.4.13 Engineering
 	Fixed liblutil hex conversion (ITS#5699)
+	Fixed libldap error code return (ITS#5762)
 	Added slapd dn.this ACL limits (ITS#5734)
 	Fixed slapd nameUIDPretty bitstring parsing (ITS#5750)
 	Fixed slapd overlay/database open with real structure (ITS#5724)
diff --git a/libraries/libldap/pagectrl.c b/libraries/libldap/pagectrl.c
index 8aac0c892a..063e807bf0 100644
--- a/libraries/libldap/pagectrl.c
+++ b/libraries/libldap/pagectrl.c
@@ -1,3 +1,4 @@
+/* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
  * Copyright 1998-2008 The OpenLDAP Foundation.
@@ -71,6 +72,7 @@ ldap_create_page_control_value(
 
 	value->bv_val = NULL;
 	value->bv_len = 0;
+	ld->ld_errno = LDAP_SUCCESS;
 
 	if ( cookie == NULL ) {
 		cookie = &null_cookie;
diff --git a/libraries/libldap/sortctrl.c b/libraries/libldap/sortctrl.c
index 80faea92e3..d5b6ac746f 100644
--- a/libraries/libldap/sortctrl.c
+++ b/libraries/libldap/sortctrl.c
@@ -304,6 +304,7 @@ ldap_create_sort_control_value(
 
 	value->bv_val = NULL;
 	value->bv_len = 0;
+	ld->ld_errno = LDAP_SUCCESS;
 
 	ber = ldap_alloc_ber_with_options( ld );
 	if ( ber == NULL) {
diff --git a/libraries/libldap/stctrl.c b/libraries/libldap/stctrl.c
index 8aba946674..d02d2d210f 100644
--- a/libraries/libldap/stctrl.c
+++ b/libraries/libldap/stctrl.c
@@ -60,6 +60,7 @@ param_error:;
 	}
 
 	assert( LDAP_VALID( ld ) );
+	ld->ld_errno = LDAP_SUCCESS;
 
 	/* check sizes according to I.D. */
 	if ( sessionSourceIp == NULL ) {
diff --git a/libraries/libldap/vlvctrl.c b/libraries/libldap/vlvctrl.c
index d92084148e..f0acaf9102 100644
--- a/libraries/libldap/vlvctrl.c
+++ b/libraries/libldap/vlvctrl.c
@@ -101,6 +101,7 @@ ldap_create_vlv_control_value(
 
 	value->bv_val = NULL;
 	value->bv_len = 0;
+	ld->ld_errno = LDAP_SUCCESS;
 
 	ber = ldap_alloc_ber_with_options( ld );
 	if ( ber == NULL ) {
-- 
GitLab