Re: [PATCH v2] initramfs: Fix a missing-chek bug in dir_add()

From: Andrew Morton
Date: Thu May 23 2019 - 23:38:22 EST


On Fri, 24 May 2019 11:30:45 +0800 Gen Zhang <blackgod016574@xxxxxxxxx> wrote:

> In dir_add() and do_name(), de->name and vcollected are allocated by
> kstrdup(). And de->name and vcollected are dereferenced in the following
> codes. However, memory allocation functions such as kstrdup() may fail.
> Dereferencing this null pointer may cause the kernel go wrong. Thus we
> should check these two kstrdup() operations.
> Further, if kstrdup() returns NULL, we should free de in dir_add().

We generally assume that memory allocations within __init code cannot
fail. If one does fail, something quite horrid has happened. The
resulting oops will provide the same information as the proposed panic()
anyway.