Thanks, Kumar. Your patch is applied. resume_cache, a routine to build in-memory data structures by reading metadata on cache device, is so complicated in the code and the logic to thoroughly implement the error checks. I am wondering how I should face this problem. Only caring about lines that allocates large-sized memories and forget about anything else is what I am thinking now. But it is clear that it is not a way kernel module should be. Do you guys have some thoughts on this problem? On 7/31/13 9:09 PM, Kumar Amit Mehta wrote: > Memory allocation may fail, hence add a check before dereferencing > the pointer. > > Signed-off-by: Kumar Amit Mehta <gmate.amit@xxxxxxxxx> > --- > Driver/dm-lc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/Driver/dm-lc.c b/Driver/dm-lc.c > index 4a65042..e00fb27 100644 > --- a/Driver/dm-lc.c > +++ b/Driver/dm-lc.c > @@ -2671,6 +2671,8 @@ static int lc_mgr_message(struct dm_target *ti, unsigned int argc, char **argv) > */ > if (!strcasecmp(cmd, "resume_cache")) { > struct lc_cache *cache = kzalloc(sizeof(*cache), GFP_KERNEL); > + if (!cache) > + return -ENOMEM; > > struct dm_dev *dev; > if (dm_get_device(ti, argv[1], dm_table_get_mode(ti->table), > -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel