Bug 465574

Summary: plasma-nm/systemsettings network settings preferences crash via segfault when attempting to uncheck checkbox
Product: [Plasma] plasmashell Reporter: AlexDeLorenzo.dev <alex>
Component: Networking in generalAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: nicolas.fella
Priority: NOR    
Version First Reported In: master   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description AlexDeLorenzo.dev 2023-02-11 08:09:45 UTC
SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

If an admin uses `nmcli` to add a WireGuard connection to NetworkManager, attempting to uncheck the "All users may connect to this network" checkbox in NetworkManager's preferences using the editor provided by plasma-nm in Plasma's systemsettings app causes the GUI to crash with a segmentation fault.

STEPS TO REPRODUCE
1.  Generate an example WireGuard conf file via Bash:

    $ echo "[Interface]
    Address = 10.0.0.1/24
    PrivateKey = $(wg genkey)
    DNS = 1.1.1.1

    [Peer]
    PublicKey = $(wg genkey | wg pubkey)
    Endpoint = host:12345
    AllowedIPs = 10.0.0.0/24
    " > wgExample.conf

2. Add the WireGuard connection to NetworkManager via its CLI as root:

    $ sudo nmcli connection import type wireguard file wgExample.conf
    Connection 'wgExample' (11a6964f-874d-4ef5-a67d-c2577c4da210) successfully added.

2.  Run `systemsettings` or use the plasma-nm widget to open NetworkManager settings. If using `systemsettings`, go to the Connection tab.
3. Locate the new `wgExample` connection and click it
4. Open the "General configuration" tab
5. Uncheck "All users may connect to this network"

OBSERVED RESULT
`systemsettings` will segfault and crash.

Here's what gets printed to to the console, I don't think it has anything to do with the crash, though. I posted a gdb trace at the end of this.

    file:///usr/lib/qt/qml/org/kde/kirigami.2/ScrollablePage.qml:200:9: QML MouseArea: Binding loop detected for property "width"
    file:///usr/lib/qt/qml/org/kde/kirigami.2/ScrollablePage.qml:200:9: QML MouseArea: Binding loop detected for property "width"
    QQmlEngine::setContextForObject(): Object already has a QQmlContext
    qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
    QQmlEngine::setContextForObject(): Object already has a QQmlContext

EXPECTED RESULT
No crash, either show an error message or uncheck the option. Ideally, if it's a condition that can't be changed, the checkbox shouldn't be active at all and should be disabled.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch Linux 6.1.10
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.102.0
Qt Version: 5.15.8

ADDITIONAL INFORMATION
gdb:

    Thread 1 "systemsettings" received signal SIGSEGV, Segmentation fault.
    0x00007fffce71f70c in WifiSecurity::setStoreSecretsSystemWide (this=0x555556b4b210, system=false) at /usr/src/debug/plasma-nm/plasma-nm-5.26.5/libs/editor/settings/wifisecurity.cpp:115
    115             m_ui->wepKey->setPasswordOption(PasswordField::StoreForAllUsers);
Comment 1 Nicolas Fella 2023-02-11 15:04:36 UTC

*** This bug has been marked as a duplicate of bug 463753 ***
Comment 2 Ben Cooksley 2024-12-23 18:23:49 UTC
Bulk transfer as requested in T17796