On Wed, Sep 09, 2009 at 12:35:33PM +0800, Colin Yi wrote: > From the above results, We know for the first leak the buffer address > is 0xffffff01d710ad18 > > > *cpqary3_state::walk softstate|::print -at cpqary3_t drvr_replyq > ffffff01d51948a0 cpqary3_drvr_replyq_t *drvr_replyq = 0xffffff01d7f11e70 > > 0xffffff01d7f11e70::print -at cpqary3_drvr_replyq_t phyctgp > ffffff01d7f11e9a struct cpqary3_phyctg *phyctgp = 0xffffff01d710ad18 > > Following the global variable "cpqary3_state", I found there is a pointer > "phyctgp" > is pointer to the leaked buf address since the > cpqary3_state->phyctgp->phyctgp==0xffffff01d710ad18 > > Since buffer(0xffffff01d710ad18) is point by pointer > cpqary3_state->phyctgp->phyctgp > > Why ::findleaks think this buffer is a mem leak?
How are these buffers allocated? (in particular, how is the cpqary3_drvr_replyq_t allocated?) What does: 0xffffff01d7f11e70::whatis output? Cheers, - jonathan