libext2fs: fix memory leak when failing to iterate inline_data directory

The xattr_get method returns to us a pointer to a buffer containing
the EA value.  If for some reason we decide to fail out of iterating
the EA part of an inline-data directory, we must free the buffer that
xattr_get passed to us (via inline_data_ea_get).

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
crypto
Darrick J. Wong 2014-08-10 18:32:21 -04:00 committed by Theodore Ts'o
parent 996999a1a4
commit 657f508cbf
1 changed files with 2 additions and 2 deletions

View File

@ -218,7 +218,7 @@ int ext2fs_inline_data_dir_iterate(ext2_filsys fs, ext2_ino_t ino,
goto out;
}
if (data.ea_size <= 0)
goto out;
goto out1;
ctx->buf = data.ea_data;
ctx->buflen = data.ea_size;
@ -226,7 +226,7 @@ int ext2fs_inline_data_dir_iterate(ext2_filsys fs, ext2_ino_t ino,
ctx->errcode = ext2fs_dirent_swab_in2(fs, ctx->buf, ctx->buflen, 0);
if (ctx->errcode) {
ret |= BLOCK_ABORT;
goto out;
goto out1;
}
#endif