Hi All, In the past a few days, I was trying to figure out a shared memory corruption problem in my module. Eventually I found this bug in apr_rmm.c's find_block_of_size() function.
It is severe enough to mess up the whole rmm memory blocks and make apr_rmm_* functions totally not workable. The source code version I am referring to is 2.0.48. Thanks! -- Kevin Here are the problems and the fixes: 1. in apr_rmm.c: line 129 if (bestsize - size > sizeof(struct rmm_block_t*)) { >>> if (bestsize - size > sizeof(rmm_block_t)) { 2. in apr_rmm.c: line 141 blk = (rmm_block_t*)((char*)rmm->base + blk->next); >>> blk = (rmm_block_t*)((char*)rmm->base + new->next); __________________________________ Do you Yahoo!? Protect your identity with Yahoo! Mail AddressGuard http://antispam.yahoo.com/whatsnewfree