From 1901f85d2a380a8abdb80dcb6d99490c498b4196 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Sat, 31 Oct 2009 00:57:34 +0000 Subject: [PATCH] ITS#6344 --- CHANGES | 1 + libraries/liblber/encode.c | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index ba16521d4e..56f6f22ac3 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ OpenLDAP 2.4 Change Log OpenLDAP 2.4.20 Engineering + Fixed liblber to return failure on certain failures (ITS#6344) Fixed libldap uninitialized return value (ITS#6355) Fixed liblutil constant (ITS#5909) Added slapd handling of hex server IDs (ITS#6297) diff --git a/libraries/liblber/encode.c b/libraries/liblber/encode.c index a5c1de0286..d2a432fe1e 100644 --- a/libraries/liblber/encode.c +++ b/libraries/liblber/encode.c @@ -151,6 +151,7 @@ ber_encode_oid( BerValue *in, BerValue *out ) der[j] = tmp; } der += len; + if ( ptr == inend ) break; @@ -242,10 +243,10 @@ ber_put_ostring( rc = ber_write( ber, (char *) ptr, &header[sizeof(header)] - ptr, 0 ); if ( rc >= 0 && ber_write( ber, str, len, 0 ) >= 0 ) { /* length(tag + length + contents) */ - rc += (int) len; + return rc + (int) len; } - return rc; + return -1; } int @@ -300,10 +301,10 @@ ber_put_bitstring( rc = ber_write( ber, (char *) ptr, &header[sizeof(header)] - ptr, 0 ); if ( rc >= 0 && ber_write( ber, str, len, 0 ) >= 0 ) { /* length(tag + length + unused bit count + bitstring) */ - rc += (int) len; + return rc + (int) len; } - return rc; + return -1; } int -- GitLab