YueHaibing
069fb92ea2
exec: Fix mem leak in kernel_read_file
...
commit f612acfae86af7ecad754ae6a46019be9da05b8e upstream.
syzkaller report this:
BUG: memory leak
unreferenced object 0xffffc9000488d000 (size 9195520):
comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
hex dump (first 32 bytes):
ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00 ................
02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff ..........z.....
backtrace:
[<000000000863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
[<000000000863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
[<000000000863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
[<000000003f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
[<000000002385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
[<0000000011953ff1>] __do_sys_finit_module+0x13b/0x2a0 kernel/module.c:3895
[<000000006f58491f>] do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
[<00000000ee78baf4>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[<00000000241f889b>] 0xffffffffffffffff
It should goto 'out_free' lable to free allocated buf while kernel_read
fails.
Fixes: 39d637af5aa7 ("vfs: forbid write access when reading a file into memory")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Thibaut Sautereau <thibaut@sautereau.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-13 14:03:11 -07:00
..
2018-12-01 09:42:50 +01:00
2017-11-02 11:10:55 +01:00
2018-05-30 07:51:47 +02:00
2018-07-08 15:30:51 +02:00
2018-09-19 22:43:48 +02:00
2017-11-02 11:10:55 +01:00
2018-12-01 09:42:51 +01:00
2019-01-31 08:13:48 +01:00
2018-12-17 09:28:53 +01:00
2019-02-27 10:08:01 +01:00
2019-02-20 10:20:51 +01:00
2017-11-24 08:37:05 +01:00
2018-11-21 09:24:15 +01:00
2018-11-13 11:15:12 -08:00
2018-08-03 07:50:32 +02:00
2019-02-15 08:09:12 +01:00
2018-07-17 11:39:26 +02:00
2019-02-12 19:45:57 +01:00
2018-06-21 04:02:42 +09:00
2017-07-11 06:09:21 -04:00
2017-11-02 11:10:55 +01:00
2018-11-27 16:10:47 +01:00
2018-12-17 09:28:50 +01:00
2018-12-05 19:41:25 +01:00
2019-02-15 08:09:13 +01:00
2019-02-12 19:46:08 +01:00
2018-11-04 14:52:47 +01:00
2018-12-17 09:28:53 +01:00
2019-02-12 19:46:11 +01:00
2019-02-06 17:31:35 +01:00
2018-12-17 09:28:54 +01:00
2018-12-17 09:28:54 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-03-13 14:03:10 -07:00
2018-10-03 17:00:57 -07:00
2018-11-13 11:15:05 -08:00
2019-01-26 09:37:02 +01:00
2018-08-09 12:16:39 +02:00
2018-12-08 13:03:35 +01:00
2019-01-13 10:01:06 +01:00
2017-11-02 11:10:55 +01:00
2018-03-28 18:24:43 +02:00
2019-02-12 19:46:07 +01:00
2018-02-03 17:39:08 +01:00
2019-02-12 19:46:14 +01:00
2018-05-30 07:51:47 +02:00
2017-11-02 11:10:55 +01:00
2019-02-06 17:31:37 +01:00
2017-11-02 11:10:55 +01:00
2019-02-12 19:46:09 +01:00
2017-11-02 11:10:55 +01:00
2018-06-26 08:06:33 +08:00
2018-11-21 09:24:17 +01:00
2019-02-27 10:08:01 +01:00
2019-01-26 09:37:02 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-01-26 09:37:05 +01:00
2017-09-06 17:27:26 -07:00
2018-11-27 16:10:46 +01:00
2017-11-02 11:10:55 +01:00
2018-09-05 09:26:32 +02:00
2018-09-05 09:26:41 +02:00
2018-12-17 09:28:48 +01:00
2017-07-06 03:31:46 -04:00
2018-12-29 13:39:11 +01:00
2019-02-12 19:46:03 +01:00
2018-05-30 07:51:47 +02:00
2018-12-05 19:41:16 +01:00
2018-12-21 14:13:04 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-09-04 19:05:15 -04:00
2017-09-14 18:13:32 -07:00
2018-09-26 08:38:09 +02:00
2017-11-02 11:10:55 +01:00
2018-06-26 08:06:33 +08:00
2019-02-15 09:08:56 +01:00
2019-01-23 08:09:50 +01:00
2017-11-30 08:40:45 +00:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-04-26 11:02:14 +02:00
2019-02-06 17:31:34 +01:00
2019-03-05 17:58:01 +01:00
2017-11-02 11:10:55 +01:00
2017-07-03 21:13:25 -07:00
2019-02-12 19:46:10 +01:00
2019-03-13 14:03:11 -07:00
2017-12-17 15:07:59 +01:00
2017-11-02 11:10:55 +01:00
2017-08-28 00:50:23 -04:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-03-05 17:58:01 +01:00
2018-07-17 11:39:27 +02:00
2017-09-13 09:11:44 -07:00
2018-11-10 07:48:33 -08:00
2018-10-03 17:00:53 -07:00
2017-07-12 16:26:00 -07:00
2017-07-06 07:02:29 -04:00
2018-10-03 17:00:53 -07:00
2017-11-02 11:10:55 +01:00
2018-02-22 15:42:25 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-12-01 09:42:59 +01:00
2018-11-21 09:24:14 +01:00
2017-11-02 11:10:55 +01:00
2017-09-05 12:53:12 +02:00
2018-02-16 20:23:05 +01:00
2017-05-23 08:41:17 -05:00
2017-11-02 11:10:55 +01:00
2018-11-10 07:48:33 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-02-22 15:42:28 +01:00
2017-11-02 11:10:55 +01:00
2017-09-04 19:05:15 -04:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-05-30 07:51:47 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-12-21 14:13:04 +01:00
2017-11-02 11:10:55 +01:00
2018-10-10 08:54:27 +02:00