Hello community, here is the log from the commit of package xrdp for openSUSE:Factory checked in at 2020-09-21 17:21:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xrdp (Old) and /work/SRC/openSUSE:Factory/.xrdp.new.4249 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xrdp" Mon Sep 21 17:21:42 2020 rev:38 rq:835319 version:0.9.14 Changes: -------- --- /work/SRC/openSUSE:Factory/xrdp/xrdp.changes 2020-07-28 17:25:57.385946810 +0200 +++ /work/SRC/openSUSE:Factory/.xrdp.new.4249/xrdp.changes 2020-09-21 17:24:39.687986134 +0200 @@ -1,0 +2,34 @@ +Fri Sep 18 04:21:28 UTC 2020 - Felix Zhang <[email protected]> + +- Add xrdp-buildfix.patch: fix a declaration conflict #1691 + +------------------------------------------------------------------- +Mon Sep 14 04:04:20 UTC 2020 - Felix Zhang <[email protected]> + +- Update to version 0.9.14 + + New features + - Multi monitor and resize support for Xvnc backend #1343 + For more details see + https://github.com/neutrinolabs/xrdp/wiki/Xvnc-backend-:-Multi-monitor-and-resize-support + - Support Programmer Dvorak Keyboard #1663 + + Bug fixes + - Fix odd shift key behavior (workaround) #397 #1522 + - Fix internal username/password buffer is smaller than RDP + protocol specification #1648 #1653 + - Fix possible memory out-of-bounds accesses #1549 + - Fix memory allocation overflow #1557 + - Prevent chansrv input channels being scanned during a server + reset #1595 + - Ignore TS_MULTIFRAGMENTUPDATE_CAPABILITYSET from client if fp + disabled #1593 + + Known issues + - FreeRDP 2.0.0-rc4 or later might not able to connect to xrdp + due to xrdp's bad-mannered behaviour, add +glyph-cache option + to FreeRDP to connect #1266 + - Audio redirection by MP3 codec doesn't sound with some + client, use AAC instead #965 +- Drop xrdp-fate319683-allow-vnc-resizing.patch: fixed upstream +- Rebase xrdp-default-config.patch +- Rebase xrdp-disable-8-bpp-vnc-support.patch +- Rebase xrdp-fate318398-change-expired-password.patch + Old: ---- xrdp-0.9.13.1.tar.gz xrdp-0.9.13.1.tar.gz.asc xrdp-fate319683-allow-vnc-resizing.patch New: ---- xrdp-0.9.14.tar.gz xrdp-0.9.14.tar.gz.asc xrdp-buildfix.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xrdp.spec ++++++ --- /var/tmp/diff_new_pack.EjEPzl/_old 2020-09-21 17:24:42.623988400 +0200 +++ /var/tmp/diff_new_pack.EjEPzl/_new 2020-09-21 17:24:42.627988402 +0200 @@ -22,7 +22,7 @@ %endif Name: xrdp -Version: 0.9.13.1 +Version: 0.9.14 Release: 0 Summary: Remote desktop protocol (RDP) server License: Apache-2.0 AND GPL-2.0-or-later @@ -52,8 +52,7 @@ Patch13: xrdp-bsc965647-allow-admin-choose-desktop.patch # PATCH-FEATURE-SLE xrdp-fate318398-change-expired-password.patch fate#318398 - [email protected] -- enable user to update expired password via PAM Patch14: xrdp-fate318398-change-expired-password.patch -# PATCH-FEATURE-SLE xrdp-fate319683-allow-vnc-resizing.patch fate#319683 bsc#948062 - [email protected] -- allow resizing in VNC sessions. -Patch15: xrdp-fate319683-allow-vnc-resizing.patch +Patch16: xrdp-buildfix.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: fdupes @@ -110,8 +109,8 @@ %patch12 -p1 %patch13 -p1 %patch14 -p1 -%patch15 -p1 %endif +%patch16 -p1 %build sh ./bootstrap ++++++ xrdp-0.9.13.1.tar.gz -> xrdp-0.9.14.tar.gz ++++++ ++++ 5068 lines of diff (skipped) ++++++ xrdp-buildfix.patch ++++++ Index: b/genkeymap/genkeymap.c =================================================================== --- a/genkeymap/genkeymap.c 2020-08-26 10:32:21.000000000 +0800 +++ b/genkeymap/genkeymap.c 2020-09-14 13:38:46.498825240 +0800 @@ -44,7 +44,7 @@ #include <X11/XKBlib.h> #include <locale.h> -extern int xfree86_to_evdev[137-8]; +extern int xfree86_to_evdev[137-8+1]; int main(int argc, char **argv) { ++++++ xrdp-default-config.patch ++++++ --- /var/tmp/diff_new_pack.EjEPzl/_old 2020-09-21 17:24:42.987988681 +0200 +++ /var/tmp/diff_new_pack.EjEPzl/_new 2020-09-21 17:24:42.987988681 +0200 @@ -1,8 +1,8 @@ Index: b/sesman/sesman.ini =================================================================== ---- a/sesman/sesman.ini 2018-12-27 17:50:27.173173569 +0800 -+++ b/sesman/sesman.ini 2018-12-27 17:51:31.737663351 +0800 -@@ -24,7 +24,7 @@ AlwaysGroupCheck=false +--- a/sesman/sesman.ini 2020-09-14 13:14:33.645606549 +0800 ++++ b/sesman/sesman.ini 2020-09-14 13:14:43.105484131 +0800 +@@ -27,7 +27,7 @@ RestrictOutboundClipboard=false ;; X11DisplayOffset - x11 display number offset ; Type: integer ; Default: 10 @@ -11,7 +11,7 @@ ;; MaxSessions - maximum number of connections to an xrdp server ; Type: integer -@@ -62,9 +62,9 @@ Policy=Default +@@ -65,9 +65,9 @@ Policy=Default [Logging] LogFile=xrdp-sesman.log @@ -26,9 +26,9 @@ ; Session definitions - startup command-line parameters for each session type Index: b/xrdp/xrdp.ini =================================================================== ---- a/xrdp/xrdp.ini 2018-12-27 17:50:27.173173569 +0800 -+++ b/xrdp/xrdp.ini 2018-12-27 17:57:38.260447082 +0800 -@@ -76,7 +76,7 @@ grey=dedede +--- a/xrdp/xrdp.ini 2020-09-14 13:14:33.645606549 +0800 ++++ b/xrdp/xrdp.ini 2020-09-14 13:14:43.105484131 +0800 +@@ -101,7 +101,7 @@ grey=dedede #ls_title=My Login Title ; top level window background color in RGB format @@ -37,7 +37,7 @@ ; width and height of login screen ls_width=350 -@@ -119,9 +119,9 @@ ls_btn_cancel_height=30 +@@ -144,9 +144,9 @@ ls_btn_cancel_height=30 [Logging] LogFile=xrdp.log @@ -50,37 +50,3 @@ ; LogLevel and SysLogLevel could by any of: core, error, warning, info or debug [Channels] -@@ -153,24 +153,24 @@ tcutils=true - ; Some session types such as Xorg, X11rdp and Xvnc start a display server. - ; Startup command-line parameters for the display server are configured - ; in sesman.ini. See and configure also sesman.ini. --[Xorg] --name=Xorg --lib=libxup.so -+[Xvnc] -+name=Xvnc -+lib=libvnc.so - username=ask - password=ask - ip=127.0.0.1 - port=-1 --code=20 -+#xserverbpp=24 -+delay_ms=2000 - --[Xvnc] --name=Xvnc --lib=libvnc.so -+[Xorg] -+name=Xorg -+lib=libxup.so - username=ask - password=ask - ip=127.0.0.1 - port=-1 --#xserverbpp=24 --#delay_ms=2000 -+code=20 - - [vnc-any] - name=vnc-any ++++++ xrdp-disable-8-bpp-vnc-support.patch ++++++ --- /var/tmp/diff_new_pack.EjEPzl/_old 2020-09-21 17:24:42.991988683 +0200 +++ /var/tmp/diff_new_pack.EjEPzl/_new 2020-09-21 17:24:42.995988687 +0200 @@ -10,15 +10,17 @@ vnc/vnc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) -diff --git a/vnc/vnc.c b/vnc/vnc.c -index b0eb29b3..db593da0 100644 ---- a/vnc/vnc.c -+++ b/vnc/vnc.c -@@ -1011,15 +1011,19 @@ lib_mod_connect(struct vnc *v) - /* check if bpp is supported for rdp connection */ +Index: b/vnc/vnc.c +=================================================================== +--- a/vnc/vnc.c 2020-09-14 13:20:01.611135290 +0800 ++++ b/vnc/vnc.c 2020-09-14 13:24:50.515034607 +0800 +@@ -1914,13 +1914,16 @@ lib_mod_connect(struct vnc *v) switch (v->server_bpp) { -- case 8: + case 8: ++ v->server_msg(v, "VNC error - 8 bpp support is dropped " ++ "since Xvnc 1.4.0", 0); ++ return 1; case 15: case 16: case 24: @@ -28,11 +30,5 @@ - v->server_msg(v, "VNC error - only supporting 8, 15, 16, 24 and 32 " + v->server_msg(v, "VNC error - only supporting 15, 16, 24 and 32 " "bpp rdp connections", 0); -+ if (v->server_bpp == 8) -+ { -+ v->server_msg(v, "VNC error - 8 bpp support is dropped " -+ "since Xvnc 1.4.0", 0); -+ } - return 1; + return 1; } - ++++++ xrdp-fate318398-change-expired-password.patch ++++++ --- /var/tmp/diff_new_pack.EjEPzl/_old 2020-09-21 17:24:43.003988693 +0200 +++ /var/tmp/diff_new_pack.EjEPzl/_new 2020-09-21 17:24:43.003988693 +0200 @@ -1,7 +1,7 @@ -Index: xrdp-0.9.13.1/sesman/auth.h +Index: xrdp-0.9.14/sesman/auth.h =================================================================== ---- xrdp-0.9.13.1.orig/sesman/auth.h -+++ xrdp-0.9.13.1/sesman/auth.h +--- xrdp-0.9.14.orig/sesman/auth.h ++++ xrdp-0.9.14/sesman/auth.h @@ -106,4 +106,6 @@ auth_check_pwd_chg(const char *user); int auth_change_pwd(const char *user, const char *newpwd); @@ -9,10 +9,10 @@ +int +auth_change_pwd_pam(char* user, char* pass, char* newpwd); #endif -Index: xrdp-0.9.13.1/sesman/libscp/libscp_session.c +Index: xrdp-0.9.14/sesman/libscp/libscp_session.c =================================================================== ---- xrdp-0.9.13.1.orig/sesman/libscp/libscp_session.c -+++ xrdp-0.9.13.1/sesman/libscp/libscp_session.c +--- xrdp-0.9.14.orig/sesman/libscp/libscp_session.c ++++ xrdp-0.9.14/sesman/libscp/libscp_session.c @@ -75,6 +75,10 @@ scp_session_set_type(struct SCP_SESSION s->type = SCP_GW_AUTHENTICATION; break; @@ -57,10 +57,10 @@ return 0; } -Index: xrdp-0.9.13.1/sesman/libscp/libscp_types.h +Index: xrdp-0.9.14/sesman/libscp/libscp_types.h =================================================================== ---- xrdp-0.9.13.1.orig/sesman/libscp/libscp_types.h -+++ xrdp-0.9.13.1/sesman/libscp/libscp_types.h +--- xrdp-0.9.14.orig/sesman/libscp/libscp_types.h ++++ xrdp-0.9.14/sesman/libscp/libscp_types.h @@ -47,6 +47,7 @@ * XRDP sends this command to let sesman verify if the user is allowed * to use the gateway */ @@ -77,10 +77,10 @@ char* hostname; tui8 addr_type; tui32 ipv4addr; -Index: xrdp-0.9.13.1/sesman/libscp/libscp_v0.c +Index: xrdp-0.9.14/sesman/libscp/libscp_v0.c =================================================================== ---- xrdp-0.9.13.1.orig/sesman/libscp/libscp_v0.c -+++ xrdp-0.9.13.1/sesman/libscp/libscp_v0.c +--- xrdp-0.9.14.orig/sesman/libscp/libscp_v0.c ++++ xrdp-0.9.14/sesman/libscp/libscp_v0.c @@ -383,9 +383,9 @@ scp_v0s_init_session(struct SCP_CONNECTI } } @@ -133,10 +133,10 @@ out_uint16_be(c->out_s, value); /* reply code */ out_uint16_be(c->out_s, 0); /* dummy data */ s_mark_end(c->out_s); -Index: xrdp-0.9.13.1/sesman/libscp/libscp_v0.h +Index: xrdp-0.9.14/sesman/libscp/libscp_v0.h =================================================================== ---- xrdp-0.9.13.1.orig/sesman/libscp/libscp_v0.h -+++ xrdp-0.9.13.1/sesman/libscp/libscp_v0.h +--- xrdp-0.9.14.orig/sesman/libscp/libscp_v0.h ++++ xrdp-0.9.14/sesman/libscp/libscp_v0.h @@ -79,6 +79,6 @@ scp_v0s_deny_connection(struct SCP_CONNE * @return */ @@ -145,10 +145,10 @@ +scp_v0s_replyauthentication(struct SCP_CONNECTION* c, unsigned short int value, tui8 type); #endif -Index: xrdp-0.9.13.1/sesman/scp_v0.c +Index: xrdp-0.9.14/sesman/scp_v0.c =================================================================== ---- xrdp-0.9.13.1.orig/sesman/scp_v0.c -+++ xrdp-0.9.13.1/sesman/scp_v0.c +--- xrdp-0.9.14.orig/sesman/scp_v0.c ++++ xrdp-0.9.14/sesman/scp_v0.c @@ -42,6 +42,13 @@ scp_v0_process(struct SCP_CONNECTION *c, int errorcode = 0; bool_t do_auth_end = 1; @@ -189,19 +189,19 @@ } } else if (data) -Index: xrdp-0.9.13.1/sesman/verify_user_pam.c +Index: xrdp-0.9.14/sesman/verify_user_pam.c =================================================================== ---- xrdp-0.9.13.1.orig/sesman/verify_user_pam.c -+++ xrdp-0.9.13.1/sesman/verify_user_pam.c -@@ -38,6 +38,7 @@ struct t_user_pass +--- xrdp-0.9.14.orig/sesman/verify_user_pam.c ++++ xrdp-0.9.14/sesman/verify_user_pam.c +@@ -41,6 +41,7 @@ struct t_user_pass { - char user[256]; - char pass[256]; -+ char newpwd[256]; + char user[MAX_BUF]; + char pass[MAX_BUF]; ++ char newpwd[MAX_BUF]; }; struct t_auth_info -@@ -86,6 +87,55 @@ verify_pam_conv(int num_msg, const struc +@@ -89,6 +90,55 @@ verify_pam_conv(int num_msg, const struc } /******************************************************************************/ @@ -257,7 +257,7 @@ static void get_service_name(char *service_name) { -@@ -103,6 +153,52 @@ get_service_name(char *service_name) +@@ -106,6 +156,52 @@ get_service_name(char *service_name) } /******************************************************************************/ @@ -310,10 +310,10 @@ /* returns long, zero is no go Stores the detailed error code in the errorcode variable*/ -Index: xrdp-0.9.13.1/xrdp/xrdp_login_wnd.c +Index: xrdp-0.9.14/xrdp/xrdp_login_wnd.c =================================================================== ---- xrdp-0.9.13.1.orig/xrdp/xrdp_login_wnd.c -+++ xrdp-0.9.13.1/xrdp/xrdp_login_wnd.c +--- xrdp-0.9.14.orig/xrdp/xrdp_login_wnd.c ++++ xrdp-0.9.14/xrdp/xrdp_login_wnd.c @@ -187,7 +187,14 @@ xrdp_wm_cancel_clicked(struct xrdp_bitma { if (wnd->wm != 0) @@ -498,10 +498,10 @@ /** * Load configuration from xrdp.ini file -Index: xrdp-0.9.13.1/xrdp/xrdp_mm.c +Index: xrdp-0.9.14/xrdp/xrdp_mm.c =================================================================== ---- xrdp-0.9.13.1.orig/xrdp/xrdp_mm.c -+++ xrdp-0.9.13.1/xrdp/xrdp_mm.c +--- xrdp-0.9.14.orig/xrdp/xrdp_mm.c ++++ xrdp-0.9.14/xrdp/xrdp_mm.c @@ -1781,7 +1781,7 @@ xrdp_mm_sesman_data_in(struct trans *tra /*********************************************************************/ /* return 0 on success */ @@ -578,7 +578,7 @@ g_strncpy(pam_auth_username, value, 255); } else if (g_strcasecmp(name, "pamsessionmng") == 0) -@@ -2240,45 +2253,56 @@ xrdp_mm_connect(struct xrdp_mm *self) +@@ -2240,45 +2253,55 @@ xrdp_mm_connect(struct xrdp_mm *self) } #ifndef USE_NOPAM @@ -590,7 +590,6 @@ - xrdp_wm_log_msg(self->wm, LOG_LEVEL_DEBUG, - "Please wait, we now perform access control..."); + int reply; -+ char replytxt[128]; + char pam_error[128]; + const char *additionalError; + xrdp_wm_log_msg(self->wm, LOG_LEVEL_INFO, "Please wait, we now perform access control..."); @@ -666,7 +665,7 @@ } #endif -@@ -2374,6 +2398,59 @@ xrdp_mm_connect(struct xrdp_mm *self) +@@ -2374,6 +2397,59 @@ xrdp_mm_connect(struct xrdp_mm *self) return rv; } @@ -679,7 +678,6 @@ + int index; + int count; + int old_idx; -+ int new_idx; + char *username; + char *password; + char *newpass; @@ -687,8 +685,10 @@ + char *name; + char *value; + ++ old_idx = -1; + username = 0; + password = 0; ++ newpass = 0; + count = self->login_names->count; + + for (index = 0; index < count; index++) @@ -708,12 +708,11 @@ + else if (g_strcasecmp(name, "newpass") == 0) + { + newpass = value; -+ new_idx = index; + } + g_strncpy(sessionIP, "127.0.0.1", 255); + } + rv = access_control(username, password, newpass, sessionIP, 5); -+ if (rv == 0) ++ if (rv == 0 && old_idx >= 0 && old_idx < count && password != 0) + { + list_remove_item (self->login_names, old_idx); + list_remove_item (self->login_values, old_idx); @@ -726,10 +725,10 @@ /*****************************************************************************/ int xrdp_mm_get_wait_objs(struct xrdp_mm *self, -Index: xrdp-0.9.13.1/xrdp/xrdp_types.h +Index: xrdp-0.9.14/xrdp/xrdp_types.h =================================================================== ---- xrdp-0.9.13.1.orig/xrdp/xrdp_types.h -+++ xrdp-0.9.13.1/xrdp/xrdp_types.h +--- xrdp-0.9.14.orig/xrdp/xrdp_types.h ++++ xrdp-0.9.14/xrdp/xrdp_types.h @@ -329,6 +329,7 @@ struct xrdp_wm struct xrdp_cache* cache; int palette[256]; @@ -738,11 +737,11 @@ /* generic colors */ int black; int grey; -Index: xrdp-0.9.13.1/xrdp/xrdp_wm.c +Index: xrdp-0.9.14/xrdp/xrdp_wm.c =================================================================== ---- xrdp-0.9.13.1.orig/xrdp/xrdp_wm.c -+++ xrdp-0.9.13.1/xrdp/xrdp_wm.c -@@ -1990,6 +1990,34 @@ xrdp_wm_login_mode_changed(struct xrdp_w +--- xrdp-0.9.14.orig/xrdp/xrdp_wm.c ++++ xrdp-0.9.14/xrdp/xrdp_wm.c +@@ -1996,6 +1996,34 @@ xrdp_wm_login_mode_changed(struct xrdp_w self->dragging = 0; xrdp_wm_set_login_mode(self, 11); } @@ -777,7 +776,7 @@ return 0; } -@@ -2034,11 +2062,19 @@ xrdp_wm_log_wnd_notify(struct xrdp_bitma +@@ -2040,11 +2068,19 @@ xrdp_wm_log_wnd_notify(struct xrdp_bitma xrdp_bitmap_invalidate(wm->screen, &rect); /* if module is gone, reset the session when ok is clicked */ @@ -798,7 +797,7 @@ } } } -@@ -2100,6 +2136,9 @@ xrdp_wm_show_log(struct xrdp_wm *self) +@@ -2106,6 +2142,9 @@ xrdp_wm_show_log(struct xrdp_wm *self) return 0; } @@ -808,3 +807,39 @@ if (self->log_wnd == 0) { w = DEFAULT_WND_LOG_W; +Index: xrdp-0.9.14/xrdp/xrdp.h +=================================================================== +--- xrdp-0.9.14.orig/xrdp/xrdp.h ++++ xrdp-0.9.14/xrdp/xrdp.h +@@ -360,6 +360,8 @@ int + xrdp_login_wnd_create(struct xrdp_wm* self); + int + load_xrdp_config(struct xrdp_config *config, int bpp); ++int ++xrdp_newpass_wnd_create(struct xrdp_wm *self); + + /* xrdp_bitmap_compress.c */ + int +@@ -394,6 +396,8 @@ xrdp_mm_check_wait_objs(struct xrdp_mm* + int + xrdp_mm_frame_ack(struct xrdp_mm *self, int frame_id); + int ++xrdp_mm_change_expired_password(struct xrdp_mm *self); ++int + server_begin_update(struct xrdp_mod* mod); + int + server_end_update(struct xrdp_mod* mod); +Index: xrdp-0.9.14/sesman/libscp/libscp_session.h +=================================================================== +--- xrdp-0.9.14.orig/sesman/libscp/libscp_session.h ++++ xrdp-0.9.14/sesman/libscp/libscp_session.h +@@ -94,6 +94,9 @@ scp_session_set_errstr(struct SCP_SESSIO + int + scp_session_set_guid(struct SCP_SESSION *s, const tui8 *guid); + ++int ++scp_session_set_newpass(struct SCP_SESSION *s, char *str); ++ + /** + * + * @brief destroys a session object
