diff options
Diffstat (limited to 'source/xap/rdesktop')
-rw-r--r-- | source/xap/rdesktop/rdesktop-1.8.0-fix-missing-ui.diff | 77 | ||||
-rwxr-xr-x | source/xap/rdesktop/rdesktop.SlackBuild | 9 |
2 files changed, 83 insertions, 3 deletions
diff --git a/source/xap/rdesktop/rdesktop-1.8.0-fix-missing-ui.diff b/source/xap/rdesktop/rdesktop-1.8.0-fix-missing-ui.diff new file mode 100644 index 00000000..efad2f33 --- /dev/null +++ b/source/xap/rdesktop/rdesktop-1.8.0-fix-missing-ui.diff @@ -0,0 +1,77 @@ +From 8aeb027877c517510ea39c26c37c6dbd46401800 Mon Sep 17 00:00:00 2001 +From: mancha <mancha1@hush.com> +Date: Sun, 20 Oct 2013 +Subject: Fix crash with -P and/or -N + +Make sure that ui is created if processing demand active PDU. + +Relevant upstream revisions: +---------------------------- +http://sourceforge.net/p/rdesktop/code/1731/ +http://sourceforge.net/p/rdesktop/code/1732/ +http://sourceforge.net/p/rdesktop/code/1741/ + +--- + proto.h | 1 + + rdesktop.c | 20 +++++++++++++------- + rdp.c | 3 +++ + 3 files changed, 17 insertions(+), 7 deletions(-) + +--- a/proto.h 2013-06-20 ++++ b/proto.h 2013-10-20 +@@ -144,6 +144,7 @@ RD_BOOL subprocess(char *const argv[], s + char *l_to_a(long N, int base); + int load_licence(unsigned char **data); + void save_licence(unsigned char *data, int length); ++void rd_create_ui(void); + RD_BOOL rd_pstcache_mkdir(void); + int rd_open_file(char *filename); + void rd_close_file(int fd); +--- a/rdesktop.c 2013-10-20 ++++ b/rdesktop.c 2013-10-20 +@@ -1132,13 +1132,7 @@ main(int argc, char *argv[]) + DEBUG(("Connection successful.\n")); + memset(password, 0, sizeof(password)); + +- /* only create a window if we dont have one intialized */ +- if (!ui_have_window()) +- { +- if (!ui_create_window()) +- return EX_OSERR; +- } +- ++ rd_create_ui(); + tcp_run_ui(True); + + g_redirect = False; +@@ -1732,6 +1726,18 @@ save_licence(unsigned char *data, int le + close(fd); + } + ++/* create rdesktop ui */ ++void ++rd_create_ui() ++{ ++ /* only create a window if we dont have one intialized */ ++ if (!ui_have_window()) ++ { ++ if (!ui_create_window()) ++ exit(EX_OSERR); ++ } ++} ++ + /* Create the bitmap cache directory */ + RD_BOOL + rd_pstcache_mkdir(void) +--- a/rdp.c 2013-06-20 ++++ b/rdp.c 2013-10-20 +@@ -1044,6 +1044,9 @@ process_demand_active(STREAM s) + uint8 type; + uint16 len_src_descriptor, len_combined_caps; + ++ /* at this point we need to ensure that we have ui created */ ++ rd_create_ui(); ++ + in_uint32_le(s, g_rdp_shareid); + in_uint16_le(s, len_src_descriptor); + in_uint16_le(s, len_combined_caps); diff --git a/source/xap/rdesktop/rdesktop.SlackBuild b/source/xap/rdesktop/rdesktop.SlackBuild index ba6c6772..e1687e78 100755 --- a/source/xap/rdesktop/rdesktop.SlackBuild +++ b/source/xap/rdesktop/rdesktop.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2006, 2008, 2009, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2006, 2008, 2009, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -23,7 +23,7 @@ PKGNAM=rdesktop VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -59,6 +59,8 @@ rm -rf ${PKGNAM}-${VERSION} tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 cd ${PKGNAM}-$VERSION || exit 1 +zcat $CWD/rdesktop-1.8.0-fix-missing-ui.diff.gz | patch -p1 --verbose || exit 1 + # Make sure ownerships and permissions are sane: chown -R root:root . find . \ @@ -73,7 +75,8 @@ CFLAGS="$SLKCFLAGS" \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --with-sound=alsa \ - --enable-smartcard \ + --disable-smartcard \ + --disable-credssp \ --with-ipv6 \ --mandir=/usr/man \ --build=$ARCH-slackware-linux |