https://bugs.kde.org/show_bug.cgi?id=486076

            Bug ID: 486076
           Summary: [openconnect] crashes inside libopenconnect:
                    ctx->form->opts->_value not set
    Classification: Plasma
           Product: plasma-nm
           Version: 6.0.3
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: plasma-b...@kde.org
          Reporter: thi...@kde.org
  Target Milestone: ---

SUMMARY
When connecting to Palo Alto Network's GlobalProtect, the openconnect plugin
causes a crash inside libopenconnect

STEPS TO REPRODUCE
1. Try to connect to a server that requires OAuth2 authentication (mine is
Microsoft's)
2. Disconnect
3. Connect again

This appears to happen more frequently when some credential is already cached.

OBSERVED RESULT
kded6 crashes

EXPECTED RESULT
Connection is successful

SOFTWARE/OS VERSIONS
KDE Plasma Version: 6.0.4
KDE Frameworks Version: 6.10
Qt Version: 6.7.0

ADDITIONAL INFORMATION
Backtrace:
#3  0x00007f0ee2441240 in <signal handler called> () at /lib64/libc.so.6
#4  0x00007f0ee257ff6c in __strlen_evex () at /lib64/libc.so.6
#5  0x00007f0ee24aa762 in strdup () at /lib64/libc.so.6
#6  0x00007f0ebd7bf319 in gpst_login (vpninfo=vpninfo@entry=0x556d4431ef00,
portal=portal@entry=1, ctx=ctx@entry=0x7f0e83dffbd0)
    at /usr/src/debug/openconnect-9.12/auth-globalprotect.c:728
#7  0x00007f0ebd7bf576 in gpst_obtain_cookie (vpninfo=0x556d4431ef00) at
/usr/src/debug/openconnect-9.12/auth-globalprotect.c:778
#8  0x00007f0ebe0bf870 in OpenconnectAuthWorkerThread::run()
(this=0x556d4415dc30)
    at
/usr/src/debug/plasma-nm-6.0.4/vpn/openconnect/openconnectauthworkerthread.cpp:125
#9  0x00007f0ee2edc1b8 in  () at
/lib64/glibc-hwcaps/x86-64-v4/libQt6Core.so.6.7.0
#10 0x00007f0ee2492bb2 in start_thread () at /lib64/libc.so.6
#11 0x00007f0ee251400c in clone3 () at /lib64/libc.so.6

In frame 6, line 728
<https://gitlab.com/openconnect/openconnect/-/blob/v9.12/auth-globalprotect.c?ref_type=tags#L728>
is:
                        if (!ctx->username)
                                ctx->username =
strdup(ctx->form->opts->_value);

(gdb) p ctx->form->opts->_value
$6 = 0x0

I can't tell if this is a libopenconnect bug or not. The code in libopenconnect
is hard to debug as it drives the functionality and only calls back into the
plugin for the web display. However, my colleagues using the GNOME counterpart
don't have this issue and this only appears to happen when there's some cookie
stored in kded, so I believe the bug is somehow in the plugin.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to