From: Serge Hallyn Date: Thu, 6 Aug 2015 05:10:13 +0000 (-0500) Subject: Fix a resource leak in libmis/idmapping.c X-Git-Tag: 4.3.0~7^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7edb32e75fca391f725ef8c874fb463684afa52b;p=shadow Fix a resource leak in libmis/idmapping.c Reported at https://alioth.debian.org/tracker/?func=detail&atid=411478&aid=315136&group_id=30580 by Alejandro Joya. Signed-off-by: Serge Hallyn --- diff --git a/libmisc/idmapping.c b/libmisc/idmapping.c index 714c29eb..34de3ce5 100644 --- a/libmisc/idmapping.c +++ b/libmisc/idmapping.c @@ -71,12 +71,18 @@ struct map_range *get_map_ranges(int ranges, int argc, char **argv) /* Gather up the ranges from the command line */ mapping = mappings; for (idx = 0; idx < ranges; idx++, argidx += 3, mapping++) { - if (!getulong(argv[argidx + 0], &mapping->upper)) + if (!getulong(argv[argidx + 0], &mapping->upper)) { + free(mappings); return NULL; - if (!getulong(argv[argidx + 1], &mapping->lower)) + } + if (!getulong(argv[argidx + 1], &mapping->lower)) { + free(mappings); return NULL; - if (!getulong(argv[argidx + 2], &mapping->count)) + } + if (!getulong(argv[argidx + 2], &mapping->count)) { + free(mappings); return NULL; + } } return mappings; }