Re: pte_chain leak in rmap code (2.5.31)

Rik van Riel (riel@conectiva.com.br)
Mon, 12 Aug 2002 11:21:16 -0300 (BRT)


On Mon, 12 Aug 2002, Christian Ehrhardt wrote:

> Note the strange use of continue and break which both achieve the same!
> What was meant to happen (judging from rmap-13c) is that we break
> out of the for-Loop once SWAP_FAIL or SWAP_ERROR is returned from
> try_to_unmap_one. However, this doesn't happen and a subsequent call
> to pte_chain_free will use the wrong value for prev_pc.

Excellent hunting! Thank you!

Your fix should work too, although in my opinion it's a
little bit too subtle, so I've changed it into:

case SWAP_FAIL:
ret = SWAP_FAIL;
goto give_up;
case SWAP_ERROR:
ret = SWAP_ERROR;
goto give_up;
}
}
give_up:

This is going into 2.4-rmap and 2.5 right now.

thanks,

Rik

-- 
Bravely reimplemented by the knights who say "NIH".

http://www.surriel.com/ http://distro.conectiva.com/

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/