Comment 2 for bug 215904

Revision history for this message
DrewM (drew-middlesworth) wrote : Re: Assertion error in io.c:234: ber_flush2

So after a quick run through the code we find that that the changing of the variable sb->sb_valid (which is what the assert is checking) only happens in one place in sockbuf.c in ber_int_sb_init() and never gets changed again. Therefore we are probably looking at some sort of memory or pointer corruption that ends up twiddling that bit. :(

drewm@frustration:~/openldap2.3-2.4.7$ grep -r sb_valid *
libraries/liblber/lber-int.h:#define sb_valid sb_opts.lbo_valid
libraries/liblber/lber-int.h:#define SOCKBUF_VALID( sb ) ( (sb)->sb_valid == LBER_VALID_SOCKBUF )
libraries/liblber/sockbuf.c: sb->sb_valid=LBER_VALID_SOCKBUF;