* [PATCH] initramfs: forcing panic when kstrdup failed
@ 2019-12-10 2:48 zhanglin
2019-12-10 7:07 ` David Engraf
2019-12-10 8:15 ` Geert Uytterhoeven
0 siblings, 2 replies; 4+ messages in thread
From: zhanglin @ 2019-12-10 2:48 UTC (permalink / raw)
To: akpm
Cc: rppt, steven.price, david.engraf, geert, linux-kernel,
xue.zhihong, wang.yi59, jiang.xuexin, zhanglin
preventing further undefined behaviour when kstrdup failed.
Signed-off-by: zhanglin <zhang.lin16@zte.com.cn>
---
init/initramfs.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/init/initramfs.c b/init/initramfs.c
index fca899622937..39a4fba48cc7 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -125,6 +125,8 @@ static void __init dir_add(const char *name, time64_t mtime)
panic("can't allocate dir_entry buffer");
INIT_LIST_HEAD(&de->list);
de->name = kstrdup(name, GFP_KERNEL);
+ if (!de->name)
+ panic("can't allocate dir_entry.name buffer");
de->mtime = mtime;
list_add(&de->list, &dir_list);
}
@@ -340,6 +342,8 @@ static int __init do_name(void)
if (body_len)
ksys_ftruncate(wfd, body_len);
vcollected = kstrdup(collected, GFP_KERNEL);
+ if (!vcollected)
+ panic("can not allocate vcollected buffer.");
state = CopyFile;
}
}
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] initramfs: forcing panic when kstrdup failed
2019-12-10 2:48 [PATCH] initramfs: forcing panic when kstrdup failed zhanglin
@ 2019-12-10 7:07 ` David Engraf
2019-12-10 8:15 ` Geert Uytterhoeven
1 sibling, 0 replies; 4+ messages in thread
From: David Engraf @ 2019-12-10 7:07 UTC (permalink / raw)
To: zhanglin, akpm
Cc: rppt, steven.price, geert, linux-kernel, xue.zhihong, wang.yi59,
jiang.xuexin
On 10.12.19 at 03:48, zhanglin wrote:
> preventing further undefined behaviour when kstrdup failed.
>
> Signed-off-by: zhanglin <zhang.lin16@zte.com.cn>
> ---
> init/initramfs.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/init/initramfs.c b/init/initramfs.c
> index fca899622937..39a4fba48cc7 100644
> --- a/init/initramfs.c
> +++ b/init/initramfs.c
> @@ -125,6 +125,8 @@ static void __init dir_add(const char *name, time64_t mtime)
> panic("can't allocate dir_entry buffer");
> INIT_LIST_HEAD(&de->list);
> de->name = kstrdup(name, GFP_KERNEL);
> + if (!de->name)
> + panic("can't allocate dir_entry.name buffer");
> de->mtime = mtime;
> list_add(&de->list, &dir_list);
> }
> @@ -340,6 +342,8 @@ static int __init do_name(void)
> if (body_len)
> ksys_ftruncate(wfd, body_len);
> vcollected = kstrdup(collected, GFP_KERNEL);
> + if (!vcollected)
> + panic("can not allocate vcollected buffer.");
I would change the message to have the same naming as the other out of
memory messages:
panic("can't allocate vcollected buffer");
Best regards
- David
> state = CopyFile;
> }
> }
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] initramfs: forcing panic when kstrdup failed
2019-12-10 2:48 [PATCH] initramfs: forcing panic when kstrdup failed zhanglin
2019-12-10 7:07 ` David Engraf
@ 2019-12-10 8:15 ` Geert Uytterhoeven
2019-12-11 0:52 ` Andrew Morton
1 sibling, 1 reply; 4+ messages in thread
From: Geert Uytterhoeven @ 2019-12-10 8:15 UTC (permalink / raw)
To: zhanglin
Cc: Andrew Morton, Mike Rapoport, Steven Price, david.engraf,
Linux Kernel Mailing List, xue.zhihong, wang.yi59, jiang.xuexin
On Tue, Dec 10, 2019 at 3:47 AM zhanglin <zhang.lin16@zte.com.cn> wrote:
> preventing further undefined behaviour when kstrdup failed.
>
> Signed-off-by: zhanglin <zhang.lin16@zte.com.cn>
Thanks for your patch!
> --- a/init/initramfs.c
> +++ b/init/initramfs.c
> @@ -125,6 +125,8 @@ static void __init dir_add(const char *name, time64_t mtime)
> panic("can't allocate dir_entry buffer");
> INIT_LIST_HEAD(&de->list);
> de->name = kstrdup(name, GFP_KERNEL);
> + if (!de->name)
> + panic("can't allocate dir_entry.name buffer");
> de->mtime = mtime;
> list_add(&de->list, &dir_list);
> }
> @@ -340,6 +342,8 @@ static int __init do_name(void)
> if (body_len)
> ksys_ftruncate(wfd, body_len);
> vcollected = kstrdup(collected, GFP_KERNEL);
> + if (!vcollected)
> + panic("can not allocate vcollected buffer.");
> state = CopyFile;
> }
> }
Do we really need to add more messages for out-of-memory conditions?
The trend is to remove the printing of those messages, as the memory
allocation subsystem will have printed a backtrace already anyway.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] initramfs: forcing panic when kstrdup failed
2019-12-10 8:15 ` Geert Uytterhoeven
@ 2019-12-11 0:52 ` Andrew Morton
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2019-12-11 0:52 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: zhanglin, Mike Rapoport, Steven Price, david.engraf,
Linux Kernel Mailing List, xue.zhihong, wang.yi59, jiang.xuexin
On Tue, 10 Dec 2019 09:15:54 +0100 Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > --- a/init/initramfs.c
> > +++ b/init/initramfs.c
> > @@ -125,6 +125,8 @@ static void __init dir_add(const char *name, time64_t mtime)
> > panic("can't allocate dir_entry buffer");
> > INIT_LIST_HEAD(&de->list);
> > de->name = kstrdup(name, GFP_KERNEL);
> > + if (!de->name)
> > + panic("can't allocate dir_entry.name buffer");
> > de->mtime = mtime;
> > list_add(&de->list, &dir_list);
> > }
> > @@ -340,6 +342,8 @@ static int __init do_name(void)
> > if (body_len)
> > ksys_ftruncate(wfd, body_len);
> > vcollected = kstrdup(collected, GFP_KERNEL);
> > + if (!vcollected)
> > + panic("can not allocate vcollected buffer.");
> > state = CopyFile;
> > }
> > }
>
> Do we really need to add more messages for out-of-memory conditions?
> The trend is to remove the printing of those messages, as the memory
> allocation subsystem will have printed a backtrace already anyway.
Yup. And we traditionally assume that memory allocations won't fail at
init time anyway. The reasoning being that the system is so enormously
messed up that the problem is both unrecoverable and very obvious.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-12-11 0:52 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-10 2:48 [PATCH] initramfs: forcing panic when kstrdup failed zhanglin
2019-12-10 7:07 ` David Engraf
2019-12-10 8:15 ` Geert Uytterhoeven
2019-12-11 0:52 ` Andrew Morton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.