YueHaibing
d3706566ae
net: netrom: Fix error cleanup path of nr_proto_init
...
Syzkaller report this:
BUG: unable to handle kernel paging request at fffffbfff830524b
PGD 237fe8067 P4D 237fe8067 PUD 237e64067 PMD 1c9716067 PTE 0
Oops: 0000 [#1 ] SMP KASAN PTI
CPU: 1 PID: 4465 Comm: syz-executor.0 Not tainted 5.0.0+ #5
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
RIP: 0010:__list_add_valid+0x21/0xe0 lib/list_debug.c:23
Code: 8b 0c 24 e9 17 fd ff ff 90 55 48 89 fd 48 8d 7a 08 53 48 89 d3 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 48 83 ec 08 <80> 3c 02 00 0f 85 8b 00 00 00 48 8b 53 08 48 39 f2 75 35 48 89 f2
RSP: 0018:ffff8881ea2278d0 EFLAGS: 00010282
RAX: dffffc0000000000 RBX: ffffffffc1829250 RCX: 1ffff1103d444ef4
RDX: 1ffffffff830524b RSI: ffffffff85659300 RDI: ffffffffc1829258
RBP: ffffffffc1879250 R08: fffffbfff0acb269 R09: fffffbfff0acb269
R10: ffff8881ea2278f0 R11: fffffbfff0acb268 R12: ffffffffc1829250
R13: dffffc0000000000 R14: 0000000000000008 R15: ffffffffc187c830
FS: 00007fe0361df700(0000) GS:ffff8881f7300000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff830524b CR3: 00000001eb39a001 CR4: 00000000007606e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
PKRU: 55555554
Call Trace:
__list_add include/linux/list.h:60 [inline]
list_add include/linux/list.h:79 [inline]
proto_register+0x444/0x8f0 net/core/sock.c:3375
nr_proto_init+0x73/0x4b3 [netrom]
? 0xffffffffc1628000
? 0xffffffffc1628000
do_one_initcall+0xbc/0x47d init/main.c:887
do_init_module+0x1b5/0x547 kernel/module.c:3456
load_module+0x6405/0x8c10 kernel/module.c:3804
__do_sys_finit_module+0x162/0x190 kernel/module.c:3898
do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x462e99
Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fe0361dec58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
RDX: 0000000000000000 RSI: 0000000020000100 RDI: 0000000000000003
RBP: 00007fe0361dec70 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fe0361df6bc
R13: 00000000004bcefa R14: 00000000006f6fb0 R15: 0000000000000004
Modules linked in: netrom(+) ax25 fcrypt pcbc af_alg arizona_ldo1 v4l2_common videodev media v4l2_dv_timings hdlc ide_cd_mod snd_soc_sigmadsp_regmap snd_soc_sigmadsp intel_spi_platform intel_spi mtd spi_nor snd_usbmidi_lib usbcore lcd ti_ads7950 hi6421_regulator snd_soc_kbl_rt5663_max98927 snd_soc_hdac_hdmi snd_hda_ext_core snd_hda_core snd_soc_rt5663 snd_soc_core snd_pcm_dmaengine snd_compress snd_soc_rl6231 mac80211 rtc_rc5t583 spi_slave_time leds_pwm hid_gt683r hid industrialio_triggered_buffer kfifo_buf industrialio ir_kbd_i2c rc_core led_class_flash dwc_xlgmac snd_ymfpci gameport snd_mpu401_uart snd_rawmidi snd_ac97_codec snd_pcm ac97_bus snd_opl3_lib snd_timer snd_seq_device snd_hwdep snd soundcore iptable_security iptable_raw iptable_mangle iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_vti ip_gre ipip sit tunnel4 ip_tunnel hsr veth netdevsim vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon dummy team bonding vcan
bridge stp llc ip6_gre gre ip6_tunnel tunnel6 tun joydev mousedev ppdev tpm kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ide_pci_generic piix aesni_intel aes_x86_64 crypto_simd cryptd glue_helper ide_core psmouse input_leds i2c_piix4 serio_raw intel_agp intel_gtt ata_generic agpgart pata_acpi parport_pc rtc_cmos parport floppy sch_fq_codel ip_tables x_tables sha1_ssse3 sha1_generic ipv6 [last unloaded: rxrpc]
Dumping ftrace buffer:
(ftrace buffer empty)
CR2: fffffbfff830524b
---[ end trace 039ab24b305c4b19 ]---
If nr_proto_init failed, it may forget to call proto_unregister,
tiggering this issue.This patch rearrange code of nr_proto_init
to avoid such issues.
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-11 13:59:49 -07:00
..
2018-09-08 01:39:47 +09:00
2019-02-26 10:08:26 +01:00
2018-01-19 14:02:12 -05:00
2018-09-26 09:56:07 -07:00
2019-03-11 13:19:24 +01:00
2019-03-28 17:00:45 -07:00
2019-04-06 15:05:07 -07:00
2019-02-21 16:23:56 -08:00
2019-03-18 18:16:12 -07:00
2019-03-21 13:26:42 -07:00
2017-04-12 22:02:36 +02:00
2019-03-21 13:26:42 -07:00
2019-02-13 18:27:55 -08:00
2018-07-13 12:18:18 -04:00
2019-01-15 21:33:36 -08:00
2019-02-28 08:24:23 -07:00
2018-08-07 12:39:13 -07:00
2017-11-02 11:10:55 +01:00
2018-01-15 14:53:43 -05:00
2017-11-02 11:10:55 +01:00
2019-01-23 11:18:00 -08:00
2018-04-19 16:11:11 -04:00
2019-01-24 22:18:48 -08:00
2017-05-27 18:51:41 -04:00
2018-09-26 20:22:19 -07:00
2018-07-30 09:10:25 -07:00
2017-07-04 22:35:16 +01:00
2019-04-08 13:31:24 +02:00
2019-01-03 18:57:57 -08:00
2017-07-04 01:29:04 -07:00
2018-04-02 20:16:17 +02:00
2017-11-02 11:10:55 +01:00
2018-07-27 13:17:50 -07:00
2019-03-04 11:00:43 -08: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
2017-10-18 12:39:36 +01:00
2017-11-30 09:54:25 -05:00
2017-11-04 09:26:51 +09:00
2019-03-03 13:48:49 -08:00
2017-11-02 11:10:55 +01:00
2018-03-05 12:52:45 -05:00
2017-11-04 09:26:51 +09:00
2017-11-02 11:10:55 +01:00
2018-10-17 21:51:13 -07:00
2018-05-20 18:31:42 -04:00
2017-11-02 11:10:55 +01:00
2018-02-28 11:43:28 -05:00
2018-05-28 22:59:54 -04:00
2017-11-01 11:50:43 +09:00
2018-04-23 10:21:24 -04:00
2017-11-02 11:10:55 +01:00
2018-11-30 13:21:52 -08:00
2019-02-13 21:07:47 -08:00
2019-02-27 12:50:17 -08:00
2017-11-02 11:10:55 +01:00
2017-10-30 21:09:24 +09:00
2017-10-11 09:49:34 +02:00
2017-11-02 11:10:55 +01:00
2018-11-17 21:37:29 -08:00
2018-08-29 19:42:52 -07:00
2018-11-07 23:00:23 -08:00
2018-12-10 15:53:04 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-12-11 14:10:06 -05:00
2017-11-02 11:10:55 +01:00
2019-02-25 14:32:35 -08:00
2019-02-22 12:56:24 -08:00
2018-11-02 23:54:56 -07:00
2018-04-22 21:12:00 -04:00
2017-01-18 13:04:28 -05:00
2018-11-07 16:12:38 -08:00
2018-12-15 13:23:02 -08:00
2019-01-27 13:29:43 -08:00
2018-10-17 17:45:07 -07:00
2019-02-26 08:27:05 -08:00
2018-12-24 15:27:56 -08:00
2018-11-07 16:12:38 -08:00
2018-06-05 10:45:24 -04:00
2019-02-08 21:50:15 -08:00
2018-10-19 11:03:06 -07:00
2018-10-16 00:13:12 -07:00
2018-11-08 17:13:08 -08:00
2019-01-15 13:33:44 -08:00
2019-02-27 12:50:17 -08:00
2019-01-28 11:15:58 +01:00
2019-04-01 10:44:58 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-01-25 21:37:11 -08:00
2018-11-07 16:23:05 -08:00
2017-11-02 11:10:55 +01:00
2018-03-27 09:51:23 +02:00
2016-08-17 19:36:23 -04:00
2019-01-30 22:13:34 -08:00
2018-07-11 23:10:19 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-10-25 12:06:25 +09:00
2018-04-22 14:55:03 -04:00
2018-09-13 09:04:58 -07:00
2019-02-13 18:27:55 -08:00
2019-04-08 13:31:31 +02:00
2017-11-02 11:10:55 +01:00
2017-04-01 20:21:44 -07:00
2016-10-03 02:00:22 -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
2018-12-19 13:37:34 -08:00
2018-05-28 22:59:54 -04:00
2019-03-28 17:00:45 -07:00
2017-11-02 11:10:55 +01:00
2018-08-01 09:52:30 -07:00
2017-07-01 07:39:09 -07:00
2019-02-01 11:06:55 +01:00
2019-04-11 13:59:49 -07:00
2018-04-07 22:32:31 -04:00
2017-11-08 16:12:33 +09:00
2017-11-02 11:10:55 +01:00
2018-05-24 18:36:15 -07:00
2018-05-16 07:23:35 +02:00
2019-02-25 10:18:17 -08:00
2018-09-25 20:17:35 -07:00
2017-11-02 11:10:55 +01:00
2018-11-08 17:13:08 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-11-07 16:12:39 -08:00
2017-11-02 11:10:55 +01:00
2017-12-05 14:37:13 -05:00
2018-08-28 11:11:47 +02:00
2019-03-09 19:51:44 -08:00
2018-05-16 07:23:35 +02:00
2018-09-26 20:30:55 -07:00
2018-03-13 18:37:02 +02:00
2018-11-06 15:00:45 -08:00
2019-04-01 14:50:13 -07:00
2018-07-21 10:43:12 -05:00
2017-11-02 11:10:55 +01:00
2018-06-22 13:43:27 +09:00
2018-07-31 09:22:48 +02:00
2018-12-20 16:56:04 -08:00
2018-04-11 10:33:46 -04:00
2019-02-21 10:34:37 -08:00
2018-08-11 01:58:46 +02:00
2019-04-11 11:04:08 -07:00
2018-03-01 21:21:36 -05:00
2017-11-02 11:10:55 +01:00
2018-06-06 14:07:53 -04:00
2019-03-01 21:35:19 -08:00
2018-02-21 15:06:05 -05:00
2019-02-26 13:16:03 -08:00
2018-05-08 00:02:41 -04:00
2019-04-10 22:42:28 -07:00
2018-07-07 10:58:49 +09:00
2017-11-02 11:10:55 +01:00
2017-08-29 15:16:52 -07:00
2018-12-03 14:15:26 -08:00
2018-11-08 17:13:08 -08:00
2018-02-16 15:57:42 -05:00
2019-02-26 08:54:37 -08:00
2018-01-24 19:13:45 -05:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-03-16 01:27:51 +01:00
2018-08-29 12:25:53 -07:00
2019-02-05 06:29:20 +01:00