mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-18 18:18:06 -05:00
ITS#3212: sasl_encode/decode 64-bit clean bug
This commit is contained in:
parent
cc33f75bf8
commit
a4116ddc64
2 changed files with 24 additions and 9 deletions
6
CHANGES
6
CHANGES
|
|
@ -2,6 +2,10 @@ OpenLDAP 2.2 Change Log
|
|||
|
||||
OpenLDAP 2.2.15 Engineering
|
||||
Fixed invalid cookie in pagedResults control (ITS#3089)
|
||||
Fixed libldap sasl_encode 64-bit bug (ITS#3054,3212)
|
||||
Fixed libldap_r runqueue
|
||||
Build environments
|
||||
Added default ldapi:// SSF build setting
|
||||
|
||||
OpenLDAP 2.2.14 Release
|
||||
Fixed back-bdb ignore deadlock bug (ITS#3188)
|
||||
|
|
@ -29,7 +33,7 @@ OpenLDAP 2.2.12 Release
|
|||
Fixed slapd first component bug (ITS#3118)
|
||||
Fixed slapd TOLOWER macro use bug (ITS#3115)
|
||||
Fixed slapd TLS context clash bug (ITS#3109)
|
||||
Fixed slapd set acl recursion (ITS#3140)
|
||||
Fixed slapd ACL set recursion (ITS#3140)
|
||||
Fixed slapd entry2mods normalization bug (ITS#3144,3152)
|
||||
Fixed slapd extended match memory leak (ITS#3146)
|
||||
Fixed slapd syncrepl persist interval issue (ITS#3064)
|
||||
|
|
|
|||
|
|
@ -306,10 +306,14 @@ sb_sasl_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
|
|||
}
|
||||
|
||||
/* Decode the packet */
|
||||
ret = sasl_decode( p->sasl_context, p->sec_buf_in.buf_base,
|
||||
p->sec_buf_in.buf_end,
|
||||
(SASL_CONST char **)&p->buf_in.buf_base,
|
||||
(unsigned *)&p->buf_in.buf_end );
|
||||
{
|
||||
unsigned tmpsize = p->buf_in.buf_end;
|
||||
ret = sasl_decode( p->sasl_context, p->sec_buf_in.buf_base,
|
||||
p->sec_buf_in.buf_end,
|
||||
(SASL_CONST char **)&p->buf_in.buf_base,
|
||||
(unsigned *)&tmpsize );
|
||||
p->buf_in.buf_end = tmpsize;
|
||||
}
|
||||
|
||||
/* Drop the packet from the input buffer */
|
||||
sb_sasl_drop_packet( &p->sec_buf_in, sbiod->sbiod_sb->sb_debug );
|
||||
|
|
@ -358,11 +362,18 @@ sb_sasl_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
|
|||
#else
|
||||
ber_pvt_sb_buf_destroy( &p->buf_out );
|
||||
#endif
|
||||
if ( len > *p->sasl_maxbuf - 100 )
|
||||
if ( len > *p->sasl_maxbuf - 100 ) {
|
||||
len = *p->sasl_maxbuf - 100; /* For safety margin */
|
||||
ret = sasl_encode( p->sasl_context, buf, len,
|
||||
(SASL_CONST char **)&p->buf_out.buf_base,
|
||||
(unsigned *)&p->buf_out.buf_size );
|
||||
}
|
||||
|
||||
{
|
||||
unsigned tmpsize = p->buf_out.buf_size;
|
||||
ret = sasl_encode( p->sasl_context, buf, len,
|
||||
(SASL_CONST char **)&p->buf_out.buf_base,
|
||||
&tmpsize );
|
||||
p->buf_out.buf_size = tmpsize;
|
||||
}
|
||||
|
||||
if ( ret != SASL_OK ) {
|
||||
ber_log_printf( LDAP_DEBUG_ANY, sbiod->sbiod_sb->sb_debug,
|
||||
"sb_sasl_write: failed to encode packet: %s\n",
|
||||
|
|
|
|||
Loading…
Reference in a new issue