I’m unable to use prplWare in x86/64 QEMU, because the kernel crashes as soon as mcastd kernel module is loaded: detected buffer overflow in strncpy Kernel BUG at fortify_panic+0x13/0x20 [verbose debug info unavailable] invalid opcode: 0000 [#1] SMP NOPTI CPU: 3 PID: 3300 Comm: tr181-mcastd Tainted: G O 6.6.86 #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-5.fc42 04/01/2014 RIP: 0010:fortify_panic+0x13/0x20 Code: 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 55 48 89 fe 48 c7 c7 60 0c 20 82 48 89 e5 e8 7d 68 c8 ff <0f> 0b 90 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 RSP: 0018:ffffc9000506bb78 EFLAGS: 00010246 RAX: 0000000000000023 RBX: ffff88800749401c RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffff88801f59d5c0 RDI: ffff88801f59d5c0 RBP: ffffc9000506bb78 R08: 0000000000000000 R09: ffffc9000506ba00 R10: 0000000000000003 R11: ffffffff824b2f88 R12: 0000000000000031 R13: 0000000000001000 R14: ffffffffa08c2e20 R15: ffff888005a14780 FS: 00007f9eed74cb28(0000) GS:ffff88801f580000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f9eed4ec000 CR3: 0000000007afe003 CR4: 0000000000370ee0 Call Trace: <TASK> ? show_regs+0x60/0x70 ? die+0x32/0x90 ? do_trap+0xf7/0x100 ? do_error_trap+0x6c/0x90 ? fortify_panic+0x13/0x20 ? exc_invalid_op+0x4f/0x70 ? fortify_panic+0x13/0x20 ? asm_exc_invalid_op+0x1b/0x20 ? mcastdnl_register+0x60/0xa0 [mcastd_core] ? fortify_panic+0x13/0x20 ? fortify_panic+0x13/0x20 kvar_string_set+0x96/0xa0 [mcastd_core] mcastd_snooper_cleanup+0xea4/0x14d0 [mcastd_core] mcastd_function_unregister+0x190/0x1c0 [mcastd_core] mcastdnl_register+0x88/0xa0 [mcastd_core] netlink_rcv_skb+0x55/0x100 mcastdnl_multicast+0xe3/0x100 [mcastd_core] netlink_unicast+0x212/0x2f0 netlink_sendmsg+0x22c/0x480 __sys_sendto+0x1af/0x1c0 ? __vm_munmap+0xa4/0x110 __x64_sys_sendto+0x1f/0x30 x64_sys_call+0x15bf/0x1c90 do_syscall_64+0x3d/0x90 entry_SYSCALL_64_after_hwframe+0x78/0xe2 RIP: 0033:0x7f9eed72a10b Code: c3 8b 07 85 c0 75 24 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> e9 de c7 ff ff 41 54 55 48 89 f5 be 00 88 08 00 53 48 81 ec a0 RSP: 002b:00007ffc5a358f08 EFLAGS: 00000246 ORIG_RAX: 000000000000002c RAX: ffffffffffffffda RBX: 000000000000002c RCX: 00007f9eed72a10b RDX: 0000000000000114 RSI: 00007f9eed582320 RDI: 0000000000000007 RBP: 00007f9eed74cb28 R08: 00007ffc5a358f6c R09: 000000000000000c R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffc5a358f6c R13: 00007f9eed57d120 R14: 00007f9eed57e0f8 R15: 00007f9eed57d17d </TASK> Modules linked in: mcastd_routing(O) mcastd_proxy(O) mcastd_core(O) pppoe ppp_async i915 video pppox ppp_generic nf_flow_table_inet mac80211_hwsim(O) mac80211(O) ipt_REJECT ebtable_nat ebtable_filter ebtable_broute cfg80211(O) xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_quota xt_pkttype xt_owner xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_helper xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_cgroup xt_addrtype xt_TCPMSS xt_REDIRECT xt_NFQUEUE xt_MASQUERADE xt_LOG xt_HL xt_DSCP xt_CT xt_CLASSIFY wmi ts_fsm ts_bm slhc sch_prio nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_ct nft_chain_nat nfnetlink_queue nf_tables nf_reject_ipv4 nf_nat_tftp nf_nat_snmp_basic nf_nat_sip nf_nat_pptp nf_nat_irc nf_nat_h323 nf_nat_ftp nf_nat_amanda nf_log_syslog nf_flow_table nf_conntrack_tftp nf_conntrack_snmp nf_conntrack_sip nf_conntrack_sane nf_conntrack_pptp nf_conntrack_netbios_ns nf_conntrack_irc nf_conntrack_h323 nf_conntrack_ftp nf_conntrack_broadcast ts_kmp nf_conntrack_amanda nf_conncount iptable_raw iptable_nat iptable_mangle iptable_filter ipt_ECN ip6table_raw ip_tables forcedeth ebtables ebt_vlan ebt_stp ebt_snat ebt_redirect ebt_pkttype ebt_mark_m ebt_mark ebt_limit ebt_ip6 ebt_ip ebt_dnat ebt_arpreply ebt_arp ebt_among ebt_802_3 e1000e drm_display_helper drm_buddy crc_ccitt compat(O) cls_flower bnx2 asn1_decoder act_vlan sch_teql sch_sfq sch_multiq sch_gred sch_fq sch_ets sch_codel em_text em_nbyte em_meta em_cmp act_skbmod act_simple act_pedit act_csum libcrc32c sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact evdev i2c_dev xt_set ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ipmac ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink dwmac_intel ip6table_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip6t_NPT ip6t_rt ip6t_mh ip6t_ipv6header ip6t_hbh ip6t_frag ip6t_eui64 ip6t_ah ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 dwmac_generic stmmac_platform stmmac ixgbe e1000 amd_xgbe ifb mdio ip6_tunnel tunnel6 veth nls_utf8 pcs_xpcs ena sha512_ssse3 sha512_generic seqiv sha3_generic jitterentropy_rng drbg md5 hmac geniv rng cmac nls_iso8859_1 nls_cp437 r8169 mdio_devres gpio_keys igb igc vfat fat button_hotplug(O) tg3 realtek phylink mii libphy ---[ end trace 0000000000000000 ]--- RIP: 0010:fortify_panic+0x13/0x20 Code: 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 55 48 89 fe 48 c7 c7 60 0c 20 82 48 89 e5 e8 7d 68 c8 ff <0f> 0b 90 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 RSP: 0018:ffffc9000506bb78 EFLAGS: 00010246 RAX: 0000000000000023 RBX: ffff88800749401c RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffff88801f59d5c0 RDI: ffff88801f59d5c0 RBP: ffffc9000506bb78 R08: 0000000000000000 R09: ffffc9000506ba00 R10: 0000000000000003 R11: ffffffff824b2f88 R12: 0000000000000031 R13: 0000000000001000 R14: ffffffffa08c2e20 R15: ffff888005a14780 FS: 00007f9eed74cb28(0000) GS:ffff88801f580000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f9eed4ec000 CR3: 0000000007afe003 CR4: 0000000000370ee0 Kernel panic - not syncing: Fatal exception Kernel Offset: disabled Rebooting in 3 seconds.. So lets disabled this feature until the issue is fixed. References: PPW-771 Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/merge_requests/1229#note_2560400819 Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> |
||
|---|---|---|
| .. | ||
| cdrouter | ||
| certs | ||
| docker | ||
| mockups | ||
| scripts | ||
| testbed | ||
| tests | ||
| build.yml | ||
| cdrouter.yml | ||
| coverity.yml | ||
| docker.yml | ||
| prplmesh.yml | ||
| README.md | ||
| release.yml | ||
| sdk.yml | ||
| testbed.yml | ||
Content
This directory contains stuff used on the GitLab CI.
docker
Contains definitions for Docker images.
testbed
Contains definitions for testbed related tests.
scripts
Contains scripts used on GitLab CI.
tests
Contains tests used on GitLab CI.
build.yml
Contains definition of the GitLab CI build test job templates used during build stage. Those templates can then be extended by other GitLab CI jobs in order to keep things DRY.
.build test config
Allows build testing of specific configurations defined in the profiles directory, using scripts/gen_config.py under the hood.
Example usage:
include:
- local: .gitlab/build.yml
stages:
- build
build test netgear-rax40 prpl:
extends: .build test config
Which is going to build test prplOS with netgear-rax40 and prpl profiles.
Description of CI variables:
- CI_BUILD_CONFIG_EXTRA - list of additional config options which should be enabled(prefixed with
+) or disabled (prefixed with-), for example+BUILD_LOG -SDKwould result inCONFIG_BUILD_LOG=yandCONFIG_SDK=yconfig symbols in.configfile.
docker.yml
Provides support for building, tagging and pushing the Docker images to image registry.
For example let's build image foo.
Prerequisites:
- Create directory for new Docker image
mkdir -p .gitlab/docker/foo - Docker image description
$EDITOR .gitlab/docker/foo/Dockefile
Then just put following into .gitlab/docker/foo/gitlab.yml
build Docker image foo:
extends: .build Docker image
testbed.yml
Provides bits needed for runtime testing on real device using labgrid Python testing framework.
Supported devices:
- Netgear RAX40
sdk.yml
Provides support for the OpenWrt SDK utilizing the Docker SDK container under the hood.
.build feed with SDK
Allows compile testing of packages using the SDK.
Example usage, build testing of safec3 package from Intel's feed_opensource_apps feed.
include:
- remote: https://gitlab.com/prpl-foundation/prplOS/prplos/-/raw/prplos/.gitlab/sdk.yml
build:
extends: .build feed with SDK
variables:
CI_SDK_INSTALL_FEEDS: feed_target_mips
CI_SDK_BUILD_PACKAGES: safec3
Description of CI variables:
- CI_SDK_INSTALL_FEEDS - list of feeds which should be installed prior to building packages.
- CI_SDK_BUILD_PACKAGES - list of packages which should be compile tested.
- CI_SDK_BUILD_PARALLEL - max number of threads to use for make (defaults to
nprocif unset).
.generate SDK package build jobs
Generates sdk-package-jobs.yml with separate build jobs for every package so the builds of those packages
can run in parallel. It's supposed to be executed by the child pipeline .execute SDK package build jobs.
.execute SDK package build jobs
It's supposed to execute jobs generated in sdk-package-jobs.yml generated by .generate SDK package build jobs job.