UBIFS: Fix possible memory leak in ubifs_readdir()
If ubifs_tnc_next_ent() returns something else than -ENOENT we leak file->private_data. Signed-off-by: Richard Weinberger <richard@nod.at> Reviewed-by: David Gstir <david@sigma-star.at>
This commit is contained in:
Родитель
86ba9ed928
Коммит
aeeb14f763
|
@ -449,13 +449,14 @@ static int ubifs_readdir(struct file *file, struct dir_context *ctx)
|
|||
}
|
||||
|
||||
out:
|
||||
kfree(file->private_data);
|
||||
file->private_data = NULL;
|
||||
|
||||
if (err != -ENOENT) {
|
||||
ubifs_err(c, "cannot find next direntry, error %d", err);
|
||||
return err;
|
||||
}
|
||||
|
||||
kfree(file->private_data);
|
||||
file->private_data = NULL;
|
||||
/* 2 is a special value indicating that there are no more direntries */
|
||||
ctx->pos = 2;
|
||||
return 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче