]> git.sur5r.net Git - openldap/commitdiff
ITS#2184 maxbuf tweaks from Larry Greenfield @ CMU
authorHoward Chu <hyc@openldap.org>
Wed, 27 Nov 2002 03:51:46 +0000 (03:51 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 27 Nov 2002 03:51:46 +0000 (03:51 +0000)
libraries/libldap/cyrus.c

index 59d5b41cf7e5a92a69bb433d6f18343e2242f152..eaf4f219accbe67f7b3727617c4424cde122ac2a 100644 (file)
@@ -194,10 +194,6 @@ sb_sasl_pkt_length( const unsigned char *buf, unsigned max, int debuglevel )
                        "sb_sasl_pkt_length: received illegal packet length "
                        "of %lu bytes\n", (unsigned long)size );      
                size = 16; /* this should lead to an error. */
-       } else if ( size > max ) {
-               ber_log_printf( LDAP_DEBUG_ANY, debuglevel,
-                       "sb_sasl_pkt_length: received packet length "
-                       "of %lu exceeds negotiated max of %lu bytes\n", (unsigned long)size, (unsigned long)max );
        }
 
        return size + 4; /* include the size !!! */
@@ -344,11 +340,14 @@ sb_sasl_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
        /* now encode the next packet. */
 #if SASL_VERSION_MAJOR >= 2
        ber_pvt_sb_buf_init( &p->buf_out );
+       /* sasl v2 makes sure this number is correct */
+       if ( len > *p->sasl_maxbuf )
+               len = *p->sasl_maxbuf;
 #else
        ber_pvt_sb_buf_destroy( &p->buf_out );
-#endif
        if ( len > *p->sasl_maxbuf - 100 )
                len = *p->sasl_maxbuf - 100;    /* For safety margin */
+#endif
        ret = sasl_encode( p->sasl_context, buf, len,
                (SASL_CONST char **)&p->buf_out.buf_base,
                (unsigned *)&p->buf_out.buf_size );