lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 4 Mar 2022 15:14:10 +0100 From: Greg KH <gregkh@...uxfoundation.org> To: xkernel.wang@...mail.com Cc: linux@...inikbrodowski.net, akpm@...ux-foundation.org, pombredanne@...b.com, arnd@...db.de, luc.vanoostenryck@...il.com, linux-kernel@...r.kernel.org Subject: Re: [PATCH] init/initramfs.c: check the return value of kstrdup() On Fri, Mar 04, 2022 at 05:27:34PM +0800, xkernel.wang@...mail.com wrote: > From: Xiaoke Wang <xkernel.wang@...mail.com> > > kstrdup() is also a memory allocation function which is similar > with kmalloc() in some way. Once some internal memory errors > happen, it will return NULL. It is better to check the return > value of it so to catch the memory error in time. > > Signed-off-by: Xiaoke Wang <xkernel.wang@...mail.com> > --- > init/initramfs.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/init/initramfs.c b/init/initramfs.c > index a842c05..49deffb 100644 > --- a/init/initramfs.c > +++ b/init/initramfs.c > @@ -139,8 +139,12 @@ static void __init dir_add(const char *name, time64_t mtime) > struct dir_entry *de = kmalloc(sizeof(struct dir_entry), GFP_KERNEL); > if (!de) > panic_show_mem("can't allocate dir_entry buffer"); > - INIT_LIST_HEAD(&de->list); > de->name = kstrdup(name, GFP_KERNEL); > + if (!de->name) { How can this fail? Have you ever hit this in real life? > + kfree(de); > + panic_show_mem("can't duplicate dir name"); Why are you freeing memory if you are panicing? How was this tested? thanks, greg k-h
Powered by blists - more mailing lists