kernel BUG at ./include/linux/skbuff.h:LINE! (2)

43 views
Skip to first unread message

syzbot

unread,
Mar 22, 2018, 7:00:02 PM3/22/18
to da...@davemloft.net, kuz...@ms2.inr.ac.ru, linux-...@vger.kernel.org, net...@vger.kernel.org, syzkall...@googlegroups.com, yosh...@linux-ipv6.org
Hello,

syzbot hit the following crash on upstream commit
938e1426e262bb0f2b512054a6f9d435dc8bd67a (Fri Feb 23 22:41:14 2018 +0000)
Merge branch 'i2c/for-current' of
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
syzbot dashboard link:
https://syzkaller.appspot.com/bug?extid=91e6f9932ff122fa4410

So far this crash happened 5 times on net-next, upstream.
C reproducer is attached.
syzkaller reproducer is attached.
Raw console output is attached.
compiler: gcc (GCC) 7.1.1 20170620
.config is attached.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+91e6f9...@syzkaller.appspotmail.com
It will help syzbot understand when the bug is fixed. See footer for
details.
If you forward the report, please keep this part and the footer.

audit: type=1400 audit(1519462760.630:6): avc: denied { map } for
pid=4216 comm="bash" path="/bin/bash" dev="sda1" ino=1457
scontext=unconfined_u:system_r:insmod_t:s0-s0:c0.c1023
tcontext=system_u:object_r:file_t:s0 tclass=file permissive=1
audit: type=1400 audit(1519462766.971:7): avc: denied { map } for
pid=4230 comm="syzkaller672661" path="/root/syzkaller672661426" dev="sda1"
ino=16481 scontext=unconfined_u:system_r:insmod_t:s0-s0:c0.c1023
tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=1
------------[ cut here ]------------
kernel BUG at ./include/linux/skbuff.h:2073!
invalid opcode: 0000 [#1] SMP KASAN
Dumping ftrace buffer:
(ftrace buffer empty)
Modules linked in:
CPU: 1 PID: 4230 Comm: syzkaller672661 Not tainted 4.16.0-rc2+ #326
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
RIP: 0010:__skb_pull include/linux/skbuff.h:2073 [inline]
RIP: 0010:__ip6_make_skb+0x1ac8/0x2190 net/ipv6/ip6_output.c:1636
RSP: 0018:ffff8801bc18f0f0 EFLAGS: 00010293
RAX: ffff8801b17400c0 RBX: 0000000000000738 RCX: ffffffff84f01828
RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8801b415ac18
RBP: ffff8801bc18f360 R08: ffff8801b4576844 R09: 0000000000000000
R10: ffff8801bc18f380 R11: ffffed00367aee4e R12: 00000000000000d6
R13: ffff8801b415a740 R14: dffffc0000000000 R15: ffff8801b45767c0
FS: 0000000001535880(0000) GS:ffff8801db300000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000002000b000 CR3: 00000001b4123001 CR4: 00000000001606e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
ip6_finish_skb include/net/ipv6.h:969 [inline]
udp_v6_push_pending_frames+0x269/0x3b0 net/ipv6/udp.c:1073
udpv6_sendmsg+0x2a96/0x3400 net/ipv6/udp.c:1343
inet_sendmsg+0x11f/0x5e0 net/ipv4/af_inet.c:764
sock_sendmsg_nosec net/socket.c:630 [inline]
sock_sendmsg+0xca/0x110 net/socket.c:640
___sys_sendmsg+0x320/0x8b0 net/socket.c:2046
__sys_sendmmsg+0x1ee/0x620 net/socket.c:2136
SYSC_sendmmsg net/socket.c:2167 [inline]
SyS_sendmmsg+0x35/0x60 net/socket.c:2162
do_syscall_64+0x280/0x940 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x42/0xb7
RIP: 0033:0x4404c9
RSP: 002b:00007ffdce35f948 EFLAGS: 00000217 ORIG_RAX: 0000000000000133
RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 00000000004404c9
RDX: 0000000000000003 RSI: 0000000020001f00 RDI: 0000000000000003
RBP: 00000000006cb018 R08: 00000000004002c8 R09: 00000000004002c8
R10: 0000000020000080 R11: 0000000000000217 R12: 0000000000401df0
R13: 0000000000401e80 R14: 0000000000000000 R15: 0000000000000000
Code: ff e8 1d 5e b9 fc e9 15 e9 ff ff e8 13 5e b9 fc e9 44 e8 ff ff e8 29
5e b9 fc e9 c0 e6 ff ff e8 3f f3 80 fc 0f 0b e8 38 f3 80 fc <0f> 0b 49 8d
87 80 00 00 00 4d 8d 87 84 00 00 00 48 89 85 20 fe
RIP: __skb_pull include/linux/skbuff.h:2073 [inline] RSP: ffff8801bc18f0f0
RIP: __ip6_make_skb+0x1ac8/0x2190 net/ipv6/ip6_output.c:1636 RSP:
ffff8801bc18f0f0
---[ end trace 0855684d21f8036f ]---
Kernel panic - not syncing: Fatal exception
Dumping ftrace buffer:
(ftrace buffer empty)
Kernel Offset: disabled
Rebooting in 86400 seconds..


---
This bug is generated by a dumb bot. It may contain errors.
See https://goo.gl/tpsmEJ for details.
Direct all questions to syzk...@googlegroups.com.

syzbot will keep track of this bug report.
If you forgot to add the Reported-by tag, once the fix for this bug is
merged
into any tree, please reply to this email with:
#syz fix: exact-commit-title
If you want to test a patch for this bug, please reply with:
#syz test: git://repo/address.git branch
and provide the patch inline or as an attachment.
To mark this as a duplicate of another syzbot report, please reply with:
#syz dup: exact-subject-of-another-report
If it's a one-off invalid bug report, please reply with:
#syz invalid
Note: if the crash happens again, it will cause creation of a new bug
report.
Note: all commands must start from beginning of the line in the email body.
raw.log.txt
repro.syz.txt
repro.c.txt
config.txt

Paolo Abeni

unread,
Mar 23, 2018, 6:25:43 AM3/23/18
to syzbot, syzkall...@googlegroups.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git master

---
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 2c7f09c3c39e..c1e93c7faf55 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1282,6 +1282,12 @@ static int __ip6_append_data(struct sock *sk,
sizeof(struct frag_hdr) : 0) +
rt->rt6i_nfheader_len;

+ /* as per RFC 7112 section 5, the entire IPv6 Header Chain must fit
+ * the first fragment
+ */
+ if (headersize + transhdrlen > mtu)
+ goto emsgsize;
+
if (cork->length + length > mtu - headersize && ipc6->dontfrag &&
(sk->sk_protocol == IPPROTO_UDP ||
sk->sk_protocol == IPPROTO_RAW)) {
@@ -1297,9 +1303,13 @@ static int __ip6_append_data(struct sock *sk,

if (cork->length + length > maxnonfragsize - headersize) {
emsgsize:
- ipv6_local_error(sk, EMSGSIZE, fl6,
- mtu - headersize +
- sizeof(struct ipv6hdr));
+ /* with large extheader pmtu can be negative, cap the reported
+ * value to 0, since it is unsigned
+ */
+ unsigned pmtu = mtu + sizeof(struct ipv6hdr) > headersize ?
+ mtu - headersize + sizeof(struct ipv6hdr): 0;
+
+ ipv6_local_error(sk, EMSGSIZE, fl6, pmtu);
return -EMSGSIZE;
}


syzbot

unread,
Mar 23, 2018, 6:31:02 AM3/23/18
to pab...@redhat.com, syzkall...@googlegroups.com
Hello,

syzbot tried to test the proposed patch but build/boot failed:

/gpu/drm/amd/amdgpu/amdgpu_ioc32.o
CC drivers/gpu/drm/radeon/sumo_dpm.o
CC drivers/gpu/drm/i915/intel_sideband.o
CC drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.o
CC drivers/gpu/drm/radeon/sumo_smc.o
CC drivers/gpu/drm/radeon/trinity_dpm.o
CC drivers/gpu/drm/i915/intel_sprite.o
CC drivers/gpu/drm/amd/amdgpu/amdgpu_mn.o
CC drivers/gpu/drm/radeon/trinity_smc.o
CC drivers/gpu/drm/i915/intel_acpi.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/smumgr.o
CC drivers/gpu/drm/radeon/ni_dpm.o
CC drivers/gpu/drm/radeon/si_smc.o
CC drivers/gpu/drm/radeon/si_dpm.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/cz_smumgr.o
CC drivers/gpu/drm/radeon/kv_smc.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/tonga_smumgr.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/fiji_smumgr.o
CC drivers/gpu/drm/radeon/kv_dpm.o
CC drivers/gpu/drm/i915/intel_opregion.o
CC drivers/gpu/drm/radeon/ci_smc.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/polaris10_smumgr.o
CC drivers/gpu/drm/radeon/ci_dpm.o
CC drivers/gpu/drm/i915/intel_fbdev.o
CC drivers/gpu/drm/i915/dvo_ch7017.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/iceland_smumgr.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/smu7_smumgr.o
CC drivers/gpu/drm/i915/dvo_ch7xxx.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/vega10_smumgr.o
CC drivers/gpu/drm/radeon/dce6_afmt.o
CC drivers/gpu/drm/radeon/radeon_vm.o
CC drivers/gpu/drm/radeon/radeon_ucode.o
CC drivers/gpu/drm/i915/dvo_ivch.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/rv_smumgr.o
CC drivers/gpu/drm/radeon/radeon_ib.o
CC drivers/gpu/drm/radeon/radeon_sync.o
CC drivers/gpu/drm/radeon/radeon_audio.o
CC drivers/gpu/drm/i915/dvo_ns2501.o
CC drivers/gpu/drm/radeon/radeon_dp_auxch.o
CC drivers/gpu/drm/i915/dvo_sil164.o
CC drivers/gpu/drm/i915/dvo_tfp410.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/ci_smumgr.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/hwmgr.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/processpptables.o
CC drivers/gpu/drm/radeon/radeon_dp_mst.o
CC drivers/gpu/drm/i915/intel_crt.o
CC drivers/gpu/drm/i915/intel_ddi.o
CC drivers/gpu/drm/radeon/radeon_mn.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/hardwaremanager.o
CC drivers/gpu/drm/radeon/r600_dma.o
CC drivers/gpu/drm/i915/intel_dp_aux_backlight.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/pp_acpi.o
CC drivers/gpu/drm/i915/intel_dp_link_training.o
CC drivers/gpu/drm/radeon/rv770_dma.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/cz_hwmgr.o
CC drivers/gpu/drm/radeon/evergreen_dma.o
CC
drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/cz_clockpowergating.o
CC drivers/gpu/drm/radeon/ni_dma.o
CC drivers/gpu/drm/i915/intel_dp_mst.o
CC drivers/gpu/drm/i915/intel_dp.o
CC drivers/gpu/drm/i915/intel_dsi.o
CC drivers/gpu/drm/i915/intel_dsi_dcs_backlight.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/pppcielanes.o
CC
drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/process_pptables_v1_0.o
CC drivers/gpu/drm/i915/intel_dsi_pll.o
CC drivers/gpu/drm/i915/intel_dsi_vbt.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppatomctrl.o
CC drivers/gpu/drm/radeon/si_dma.o
CC drivers/gpu/drm/radeon/cik_sdma.o
CC drivers/gpu/drm/i915/intel_dvo.o
CC drivers/gpu/drm/i915/intel_hdmi.o
CC drivers/gpu/drm/radeon/radeon_uvd.o
CC drivers/gpu/drm/radeon/uvd_v1_0.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppatomfwctrl.o
CC drivers/gpu/drm/radeon/uvd_v2_2.o
CC drivers/gpu/drm/radeon/uvd_v3_1.o
CC drivers/gpu/drm/radeon/uvd_v4_2.o
CC drivers/gpu/drm/i915/intel_i2c.o
CC drivers/gpu/drm/radeon/radeon_vce.o
CC drivers/gpu/drm/i915/intel_lspcon.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/smu7_hwmgr.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/smu7_powertune.o
CC drivers/gpu/drm/radeon/vce_v1_0.o
CC drivers/gpu/drm/i915/intel_lvds.o
CC drivers/gpu/drm/radeon/vce_v2_0.o
CC drivers/gpu/drm/radeon/radeon_acpi.o
CC drivers/gpu/drm/i915/intel_panel.o
CC drivers/gpu/drm/i915/intel_sdvo.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/smu7_thermal.o
CC
drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/smu7_clockpowergating.o
CC
drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/vega10_processpptables.o
CC drivers/gpu/drm/i915/intel_tv.o
CC drivers/gpu/drm/i915/i915_gpu_error.o
CC drivers/gpu/drm/i915/i915_vgpu.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/vega10_hwmgr.o
CC drivers/gpu/drm/i915/i915_perf.o
CC drivers/gpu/drm/i915/i915_oa_hsw.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/vega10_powertune.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/vega10_thermal.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/rv_hwmgr.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/pp_psm.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/pp_overdriver.o
CC drivers/gpu/drm/amd/amdgpu/../powerplay/amd_powerplay.o
CC drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.o
CC drivers/gpu/drm/i915/i915_oa_bdw.o
CC drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_irq.o
CC drivers/gpu/drm/i915/i915_oa_chv.o
CC
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.o
CC drivers/gpu/drm/i915/i915_oa_sklgt2.o
CC
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_services.o
CC drivers/gpu/drm/i915/i915_oa_sklgt3.o
CC
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_helpers.o
CC drivers/gpu/drm/i915/i915_oa_sklgt4.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/basics/conversion.o
CC drivers/gpu/drm/i915/i915_oa_bxt.o
CC drivers/gpu/drm/i915/i915_oa_kblgt2.o
CC drivers/gpu/drm/i915/i915_oa_kblgt3.o
CC drivers/gpu/drm/i915/i915_oa_glk.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/basics/fixpt31_32.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/basics/fixpt32_32.o
CC drivers/gpu/drm/i915/i915_oa_cflgt2.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/basics/logger.o
CC drivers/gpu/drm/i915/i915_oa_cflgt3.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/basics/log_helpers.o
CC drivers/gpu/drm/i915/i915_oa_cnl.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/basics/vector.o
CC drivers/gpu/drm/i915/intel_gvt.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser.o
CC drivers/gpu/drm/i915/gvt/gvt.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_interface.o
CC drivers/gpu/drm/i915/gvt/aperture_gm.o
CC drivers/gpu/drm/i915/gvt/handlers.o
CC drivers/gpu/drm/i915/gvt/vgpu.o
CC drivers/gpu/drm/i915/gvt/trace_points.o
CC drivers/gpu/drm/i915/gvt/firmware.o
CC drivers/gpu/drm/i915/gvt/interrupt.o
CC drivers/gpu/drm/i915/gvt/gtt.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_helper.o
CC drivers/gpu/drm/i915/gvt/cfg_space.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table_helper.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_common.o
CC drivers/gpu/drm/i915/gvt/opregion.o
CC drivers/gpu/drm/i915/gvt/mmio.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.o
CC drivers/gpu/drm/i915/gvt/display.o
CC drivers/gpu/drm/i915/gvt/edid.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table_helper2.o
CC drivers/gpu/drm/i915/gvt/execlist.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser2.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce80/command_table_helper_dce80.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce110/command_table_helper_dce110.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper_dce112.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper2_dce112.o
CC drivers/gpu/drm/i915/gvt/scheduler.o
CC drivers/gpu/drm/i915/gvt/sched_policy.o
CC drivers/gpu/drm/i915/gvt/mmio_context.o
CC drivers/gpu/drm/i915/gvt/cmd_parser.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dce_calcs.o
CC drivers/gpu/drm/i915/gvt/debugfs.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/bw_fixed.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/custom_float.o
CC drivers/gpu/drm/i915/gvt/fb_decoder.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_audio.o
CC drivers/gpu/drm/i915/gvt/dmabuf.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_stream_encoder.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_link_encoder.o
CC drivers/gpu/drm/i915/intel_lpe_audio.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_hwseq.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_mem_input.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_clock_source.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_scl_filters.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_transform.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_clocks.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_opp.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_dmcu.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_abm.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_ipp.o
AR drivers/gpu/drm/radeon/radeon.o
AR drivers/gpu/drm/radeon/built-in.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/gpio_base.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/gpio_service.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_factory.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_gpio.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_hpd.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_ddc.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_translate.o
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table.c: In function
‘dal_bios_parser_init_cmd_tbl’:
drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table.c:83:1:
warning: the frame size of 3776 bytes is larger than 2048 bytes
[-Wframe-larger-than=]
}
^
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce80/hw_translate_dce80.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce80/hw_factory_dce80.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce110/hw_translate_dce110.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce110/hw_factory_dce110.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce120/hw_translate_dce120.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce120/hw_factory_dce120.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/diagnostics/hw_translate_diag.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/diagnostics/hw_factory_diag.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/aux_engine.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/engine_base.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/i2caux.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/i2c_engine.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/i2c_generic_hw_engine.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/i2c_hw_engine.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/i2c_sw_engine.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce80/i2caux_dce80.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce80/i2c_hw_engine_dce80.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce80/i2c_sw_engine_dce80.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce100/i2caux_dce100.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce110/i2caux_dce110.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce110/i2c_sw_engine_dce110.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce110/i2c_hw_engine_dce110.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce110/aux_engine_dce110.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce112/i2caux_dce112.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/dce120/i2caux_dce120.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/i2caux/diagnostics/i2caux_diag.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/irq/irq_service.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dce80/irq_service_dce80.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dce110/irq_service_dce110.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dce120/irq_service_dce120.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/virtual/virtual_link_encoder.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/virtual/virtual_stream_encoder.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce120/dce120_resource.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce120/dce120_timing_generator.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce120/dce120_hw_sequencer.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce112/dce112_compressor.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce112/dce112_hw_sequencer.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce112/dce112_resource.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_timing_generator.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_compressor.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_hw_sequencer.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_resource.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_opp_regamma_v.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_opp_csc_v.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_timing_generator_v.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_mem_input_v.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_opp_v.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce110/dce110_transform_v.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce100/dce100_resource.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce100/dce100_hw_sequencer.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce80/dce80_timing_generator.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce80/dce80_compressor.o
CC
drivers/gpu/drm/amd/amdgpu/../display/dc/dce80/dce80_hw_sequencer.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dce80/dce80_resource.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_resource.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_hw_sequencer.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_sink.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_surface.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_hwss.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.o
AR drivers/gpu/drm/i915/i915.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_ddc.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_debug.o
AR drivers/gpu/drm/i915/built-in.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_stream.o
CC drivers/gpu/drm/amd/amdgpu/../display/dc/dc_helper.o
CC drivers/gpu/drm/amd/amdgpu/../display/modules/freesync/freesync.o
AR drivers/gpu/drm/amd/amdgpu/amdgpu.o
AR drivers/gpu/drm/amd/amdgpu/built-in.o
AR drivers/gpu/drm/built-in.o
AR drivers/gpu/built-in.o
AR drivers/built-in.o


Error text is too large and was truncated, full error text is attached.


Tested on net commit
f36b7534b83357cf52e747905de6d65b4f7c2512 (Fri Mar 23 01:48:43 2018 +0000)
Merge branch 'akpm' (patches from Andrew)

compiler: gcc (GCC) 7.1.1 20170620
Patch is attached.



patch.diff
error.txt

Paolo Abeni

unread,
Mar 23, 2018, 6:50:56 AM3/23/18
to syzbot, syzkall...@googlegroups.com
#syx test: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git master
---
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 2c7f09c3c39e..8153585d3279 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1246,7 +1246,7 @@ static int __ip6_append_data(struct sock *sk,
const struct sockcm_cookie *sockc)
{
struct sk_buff *skb, *skb_prev = NULL;
- unsigned int maxfraglen, fragheaderlen, mtu, orig_mtu;
+ unsigned int maxfraglen, fragheaderlen, mtu, orig_mtu, pmtu;
int exthdrlen = 0;
int dst_exthdrlen = 0;
int hh_len;
@@ -1282,6 +1282,12 @@ static int __ip6_append_data(struct sock *sk,
sizeof(struct frag_hdr) : 0) +
rt->rt6i_nfheader_len;

+ /* as per RFC 7112 section 5, the entire IPv6 Header Chain must fit
+ * the first fragment
+ */
+ if (headersize + transhdrlen > mtu)
+ goto emsgsize;
+
if (cork->length + length > mtu - headersize && ipc6->dontfrag &&
(sk->sk_protocol == IPPROTO_UDP ||
sk->sk_protocol == IPPROTO_RAW)) {
@@ -1297,9 +1303,13 @@ static int __ip6_append_data(struct sock *sk,

if (cork->length + length > maxnonfragsize - headersize) {
emsgsize:
- ipv6_local_error(sk, EMSGSIZE, fl6,
- mtu - headersize +
- sizeof(struct ipv6hdr));
+ /* with large extheader pmtu can be negative, cap the reported
+ * value to 0, since it is unsigned
+ */
+ pmtu = mtu + sizeof(struct ipv6hdr) > headersize ?
Reply all
Reply to author
Forward
0 new messages