mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] tty: vt: Add checks after calling kzalloc
@ 2022-08-31  7:57 Jiasheng Jiang
  2022-08-31  8:19 ` Greg KH
  0 siblings, 1 reply; 3+ messages in thread
From: Jiasheng Jiang @ 2022-08-31  7:57 UTC (permalink / raw)
  To: gregkh, jirislaby, ilpo.jarvinen, johan, penguin-kernel,
	zhangxuezhi1, xyangxi5
  Cc: linux-kernel, Jiasheng Jiang

As the potential failure of the memory allocation,
it should be better to check the return value after
calling kzalloc and return error if fails.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
---
 drivers/tty/vt/vt.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index ae9c926acd6f..a4d59f3a3ce0 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -3519,11 +3519,19 @@ static int __init con_init(void)
 
 	for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) {
 		vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
+		if (!vc) {
+			console_unlock();
+			return -ENOMEM;
+		}
 		INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
 		tty_port_init(&vc->port);
 		visual_init(vc, currcons, 1);
 		/* Assuming vc->vc_{cols,rows,screenbuf_size} are sane here. */
 		vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT);
+		if (!vc->vc_screenbuf) {
+			console_unlock();
+			return -ENOMEM;
+		}
 		vc_init(vc, vc->vc_rows, vc->vc_cols,
 			currcons || !vc->vc_sw->con_save_screen);
 	}
-- 
2.25.1


^ permalink raw reply	[flat|nested] 3+ messages in thread
* Re: Re: [PATCH] tty: vt: Add checks after calling kzalloc
@ 2022-08-31  9:08 Jiasheng Jiang
  2022-08-31  9:42 ` Tetsuo Handa
  0 siblings, 1 reply; 3+ messages in thread
From: Jiasheng Jiang @ 2022-08-31  9:08 UTC (permalink / raw)
  To: gregkh
  Cc: jirislaby, ilpo.jarvinen, johan, penguin-kernel, zhangxuezhi1,
	xyangxi5, linux-kernel, Jiasheng Jiang

On Wed, Aug 31, 2022 at 03:57:42PM +0800, Jiasheng Jiang wrote:
>>  	for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) {
>>  		vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
>> +		if (!vc) {
>> +			console_unlock();
>> +			return -ENOMEM;
>> +		}
>>  		INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
>>  		tty_port_init(&vc->port);
>>  		visual_init(vc, currcons, 1);
>>  		/* Assuming vc->vc_{cols,rows,screenbuf_size} are sane here. */
>>  		vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT);
>> +		if (!vc->vc_screenbuf) {
>> +			console_unlock();
>> +			return -ENOMEM;
>> +		}
> 
> This has been attempted many times in the past, sorry.  Unless you can
> prove that this can actually happen in real life, we are going to leave
> these as-is.
> 
> Please do not just do random changes like this without actually testing
> to see if it is possible to happen.

As the harm of vulnerabilities is much higher than the cost of fixing them,
it is acceptable to add harmless security checks that guarantee the
vulnerabilities will never be triggered.

Thanks,
Jiang


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-08-31  9:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-31  7:57 [PATCH] tty: vt: Add checks after calling kzalloc Jiasheng Jiang
2022-08-31  8:19 ` Greg KH
2022-08-31  9:08 Jiasheng Jiang
2022-08-31  9:42 ` Tetsuo Handa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®