Hey Eric, On Mon, May 21, 2012 at 05:10:06PM -0500, Eric Sandeen wrote: > blkmap_getn() contains a loop which populates an array of extents > with mapping information for a dir2 "block," which may consist > of multiple filesystem blocks. > > As written, the loop re-allocates the array for each new extent, > leaking the previously allocated memory and worse, losing the > previously filled-in extent information. > > Fix this by only allocating the array once, for the maximum > possible number of extents - the number of fs blocks in the dir > block. > > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > > diff --git a/repair/bmap.c b/repair/bmap.c > index 2f1c307..c43ca7f 100644 > --- a/repair/bmap.c > +++ b/repair/bmap.c > @@ -168,7 +168,8 @@ blkmap_getn( > /* > * rare case - multiple extents for a single dir block > */ > - bmp = malloc(nb * sizeof(bmap_ext_t)); > + if (!bmp) > + bmp = malloc(nb * sizeof(bmap_ext_t)); Cool. That's an area where we don't have much test coverage. I don't see a single '-n size' in xfstests. This looks good to me. FWICS all the callers free it later. Reviewed-by: Ben Myers <bpm@xxxxxxx> _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs