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. :(
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@frustrati on:~/openldap2. 3-2.4.7$ grep -r sb_valid * liblber/ lber-int. h:#define sb_valid sb_opts.lbo_valid liblber/ lber-int. h:#define SOCKBUF_VALID( sb ) ( (sb)->sb_valid == LBER_VALID_SOCKBUF ) liblber/ sockbuf. c: sb->sb_ valid=LBER_ VALID_SOCKBUF;
libraries/
libraries/
libraries/