Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XRDP v0.9.22 - Session chooser (login) segfaults if I click on 'Session' - libcommon.so.0.0.0 #2687

Closed
morgancoxuk opened this issue May 17, 2023 · 10 comments

Comments

@morgancoxuk
Copy link

morgancoxuk commented May 17, 2023

Hi.

I have another issue (perhaps related to #2682 ?)

Pretty sure this didn't occur before (when I just had KDE installed)

If I enter no password when logging in I get the XRDP login menu - where you choose session, user, pass.

If I click on the session drop down menu (i.e xorg, XVNC) (at all) it crashes (100% on the time, on 2 different systems..)

e.g

[   44.044898] xrdp[1614]: segfault at 5643a003b6d8 ip 00007f7167d46fda sp 00007ffde329f8a0 error 4 in libcommon.so.0.0.0[7f7167d3c000+19000]
[   44.044941] Code: 49 ee 49 8b 3c 24 41 3b 4c 24 0c 74 4b 8d 41 01 41 89 44 24 08 83 f8 01 7e 22 83 e9 01 39 e9 72 1b 0f 1f 80 00 00 00 00 89 c8 <48> 8b 34 c7 8d 41 01 83 e9 01 48 89 34 c7 39 e9 73 ec 48 63 ed b8 

It works otherwise as long as you do not click ...

i.e I can use tab key to enter the session drop down (and it doesn't crash) - which seems like a really odd error.

Any ideas ?

edit: It appears to be connected to the new version (i'm using EPEL packages) - xrdp-0.9.22-4.el8.x86_64.rpm - this happens on - if I downgrade again to xrdp-0.9.21-1.el8.x86_64.rpm this issue is not there .

@matt335672
Copy link
Member

matt335672 commented May 18, 2023

I can reproduce this on CentOS 8 and in my development environment.

As far as CentOS 8 goes, at the moment 0.9.22-4 is in testing, so I needed to install it (and xrdp-selinux) manually.

This looks like a problem with our stuff, rather than the EPEL build this time. It looks like 8810d46 is missing from this release. If I cherry-pick that in, the session chooser is fine.

@bsmojver - I've raised https://bugzilla.redhat.com/show_bug.cgi?id=2208248

@metalefty - we'll need a 0.9.22.1 release. I'll look to see if anything else is missing.

@matt335672
Copy link
Member

There are quite a few things in the v0.9.22 release note which aren't in the tarball - see git log v0.9.22..v0.9 .

@matt335672 matt335672 changed the title XRDP - Session chooser (login) segfaults if I click on 'Session' - libcommon.so.0.0.0 XRDP v0.9.22 - Session chooser (login) segfaults if I click on 'Session' - libcommon.so.0.0.0 May 18, 2023
@bsmojver
Copy link

bsmojver commented May 18, 2023

Thanks. I linked the two RH bugs now.

PS. Anything before -4 is definitely my error. I failed to include important .so files in the package.

@morgancoxuk
Copy link
Author

I also added a bug report -> https://bugzilla.redhat.com/show_bug.cgi?id=2208015

@metalefty
Copy link
Member

metalefty commented May 22, 2023

@matt335672 Thanks for the investigation.

Guys, I will release a fixed version v0.9.22.1 soon. Sorry for the inconvenience.

@metalefty
Copy link
Member

metalefty commented May 22, 2023

I suppose the breakage is caused by my mistakes during release process. Sorry for the breakage. This is not an official v0.9.22.1 release yet but should be a correct v0.9.22 tarball and will be re-released as v0.9.22.1.

@matt335672 @bsmojver Can you test this pre-release tarball?

xrdp-0.9.22.1-pre.tar.gz

@bsmojver
Copy link

I can definitely see the segrault patch in the diff, so that's good. I also see removals of g_malloc/free/memset/memcpy, which (from memory) was in release notes. And there is pamconfdir stuff too. There are also some other changes there, like audin. smartcard stuff etc. In summary, yeah - the pre tarball picked up more stuff, it seems.

@matt335672
Copy link
Member

I'm not sure about the submodule versions in the tarball.

I'd like a second opinion, as I may be reading this wrong.

In the tarball, ./librfxcodec/src/rfxconstants.h contains this block:-

/* progressive blockType */
#define PRO_WBT_SYNC                        0xCCC0
#define PRO_WBT_FRAME_BEGIN                 0xCCC1
#define PRO_WBT_FRAME_END                   0xCCC2
#define PRO_WBT_CONTEXT                     0xCCC3
#define PRO_WBT_REGION                      0xCCC4
#define PRO_WBT_TILE_SIMPLE                 0xCCC5
#define PRO_WBT_TILE_PROGRESSIVE_FIRST      0xCCC6
#define PRO_WBT_TILE_PROGRESSIVE_UPGRADE    0xCCC7

This block was added for commit neutrinolabs/librfxcodec@34d0513 (PR is neutrinolabs/librfxcodec#50). This is merged in the devel branch. However, I believe the librfxcodec submodule commit for the xrdp v0.9 branch is neutrinolabs/librfxcodec@d8f126a :-

$ git checkout v0.9
Already on 'v0.9'
Your branch is up-to-date with 'origin/v0.9'.
$ git pull
Already up-to-date.
$ git submodule
 b44f2fac46dc818c441dd540cafb1fdf332ab456 libpainter (v0.1.1-1-gb44f2fa)
 d8f126abc48a1b949a0be27b334099161c06f0fc librfxcodec (v0.1.6)

Here's a link to that version of the file:-

https://github.com/neutrinolabs/librfxcodec/blob/d8f126abc48a1b949a0be27b334099161c06f0fc/src/rfxconstants.h

It doesn't contain the block above.

@metalefty
Copy link
Member

I have released the correct tarball v0.9.22.1. Double-checked by me and @matt335672 .
https://github.com/neutrinolabs/xrdp/releases/tag/v0.9.22.1

@bsmojver
Copy link

bsmojver commented May 23, 2023

Thanks! Building Fedora packages now.

PS. It looks like on EPEL7, we'll need -std=c99 gcc option. Testing now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants