[Pkg-remote-commits] [freerdp] 05/11: Fix branch state: reset to freerdp 1.0.1-1.

Mike Gabriel sunweaver at debian.org
Wed Nov 30 12:57:18 UTC 2016


This is an automated email from the git hooks/post-receive script.

sunweaver pushed a commit to branch debian-wheezy
in repository freerdp.

commit 3a7eda49ffdbb3a0b268006497c0236a744adc82
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Thu Apr 17 12:09:25 2014 +0200

    Fix branch state: reset to freerdp 1.0.1-1.
---
 debian/changelog                           |  27 -
 debian/compat                              |   2 +-
 debian/control                             |  13 +-
 debian/libfreerdp-dev.install              |   8 +-
 debian/libfreerdp-plugins-standard.install |   2 +-
 debian/libfreerdp1.install                 |   2 +-
 debian/libfreerdp1.symbols                 |   6 +-
 debian/patches/1.0-stable-sync.patch       | 988 -----------------------------
 debian/patches/1001_fix-compliling.patch   |  36 --
 debian/patches/series                      |   2 -
 debian/rules                               |   3 -
 11 files changed, 11 insertions(+), 1078 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 3ec88e9..3f3ce34 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,30 +1,3 @@
-freerdp (1.0.1-2+deb7u1) stable-proposed-updates; urgency=low
-
-  * debian/control:
-    + Update Maintainer: and Uploaders: fields to current
-      status in latest package version in Debian unstable
-      (1.0.2-2).
-  * debian/patches:
-    + Add patch: 1001_fix-compliling.patch. Fix compilation errors
-      against libfreerdp-dev. Thanks to Jean-Baptiste Rouault for
-      reporting this. (Closes: #729044).
-
- -- Mike Gabriel <sunweaver at debian.org>  Wed, 12 Mar 2014 11:47:13 +0100
-
-freerdp (1.0.1-2) unstable; urgency=low
-
-  * debian/control: Fix suggeting package name. Closes: #674138.
-  * New upstream stable snapshot:
-    - Fix handling of numlock with remoteapp. Closes: #683885.
-    - libfreerdp-gdi: add PatBlt DPa operation. Closes: #662854.
-  * libfreerdp1: Update symbols
-  * debian/*.install, debian/control: Add multiarch support.
-  * debian/rules: Enable PulseAudio support. Closes: #672604
-  * debian/compat: Bump to 9 so debhelper can handle build flags
-    automatically for CMake.
-
- -- Otavio Salvador <otavio at debian.org>  Sat, 27 Oct 2012 16:19:56 -0200
-
 freerdp (1.0.1-1) unstable; urgency=low
 
   [ Jeremy Bicha ]
diff --git a/debian/compat b/debian/compat
index ec63514..7f8f011 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-9
+7
diff --git a/debian/control b/debian/control
index 4bc2474..3737762 100644
--- a/debian/control
+++ b/debian/control
@@ -1,12 +1,9 @@
 Source: freerdp
 Section: x11
 Priority: optional
-Maintainer: Mike Gabriel <sunweaver at debian.org>
-Uploaders:
- Otavio Salvador <otavio at debian.org>,
- Laszlo Boszormenyi (GCS) <gcs at debian.hu>,
+Maintainer: Otavio Salvador <otavio at debian.org>
 Build-Depends:
- debhelper (>= 9), autotools-dev, cmake, libasound2-dev, libcups2-dev,
+ debhelper (>= 7.0.50~), autotools-dev, cmake, libasound2-dev, libcups2-dev,
  libpcsclite-dev, libpulse-dev, libssl-dev, libx11-dev, libxcursor-dev,
  libxdamage-dev, libxext-dev, libxkbfile-dev, libxinerama-dev, libxv-dev,
  pkg-config, xmlto, libavcodec-dev
@@ -54,10 +51,8 @@ Description: RDP client for Windows Terminal Services
 Package: libfreerdp1
 Architecture: any
 Section: libs
-Pre-Depends: ${misc:Pre-Depends}
 Depends: ${misc:Depends}, ${shlibs:Depends}
-Multi-Arch: same
-Suggests: freerdp-x11
+Suggests: xfreerdp
 Description: RDP client for Windows Terminal Services (library)
  FreeRDP is a client for Windows Terminal Services implementing the Remote
  Desktop Protocol (RDP).
@@ -67,9 +62,7 @@ Description: RDP client for Windows Terminal Services (library)
 Package: libfreerdp-plugins-standard
 Architecture: any
 Section: libs
-Pre-Depends: ${misc:Pre-Depends}
 Depends: ${misc:Depends}, ${shlibs:Depends}
-Multi-Arch: same
 Description: RDP client for Windows Terminal Services (plugins)
  FreeRDP is a client for Windows Terminal Services implementing the Remote
  Desktop Protocol (RDP).
diff --git a/debian/libfreerdp-dev.install b/debian/libfreerdp-dev.install
index 978ead1..f72f502 100644
--- a/debian/libfreerdp-dev.install
+++ b/debian/libfreerdp-dev.install
@@ -1,5 +1,5 @@
 usr/include
-usr/lib/*/*.so
-#usr/lib/*/*.a
-#usr/lib/freerdp/*/*.a
-usr/lib/*/pkgconfig
+usr/lib/*.so
+#usr/lib/*.a
+#usr/lib/freerdp/*.a
+usr/lib/pkgconfig
diff --git a/debian/libfreerdp-plugins-standard.install b/debian/libfreerdp-plugins-standard.install
index cf19e9e..84afc47 100644
--- a/debian/libfreerdp-plugins-standard.install
+++ b/debian/libfreerdp-plugins-standard.install
@@ -1 +1 @@
-usr/lib/*/freerdp/*.so
+usr/lib/freerdp/*.so
diff --git a/debian/libfreerdp1.install b/debian/libfreerdp1.install
index 3de3b10..093956b 100644
--- a/debian/libfreerdp1.install
+++ b/debian/libfreerdp1.install
@@ -1 +1 @@
-usr/lib/*/*.so.*
+usr/lib/*.so.*
diff --git a/debian/libfreerdp1.symbols b/debian/libfreerdp1.symbols
index 7fe7d6a..fa869ed 100644
--- a/debian/libfreerdp1.symbols
+++ b/debian/libfreerdp1.symbols
@@ -93,9 +93,9 @@ libfreerdp-codec.so.1.0 libfreerdp1 #MINVER#
  freerdp_color_convert_bgr_rgb at Base 1.0~beta5
  freerdp_color_convert_rgb at Base 1.0~beta5
  freerdp_color_convert_rgb_bgr at Base 1.0~beta5
- freerdp_color_convert_var at Base 1.0.0
  freerdp_color_convert_var_bgr at Base 1.0~beta5
  freerdp_color_convert_var_rgb at Base 1.0~beta5
+ freerdp_color_convert_var at Base 1.0.0
  freerdp_color_make_bgr at Base 1.0~beta5
  freerdp_color_make_rgb at Base 1.0~beta5
  freerdp_color_split_bgr at Base 1.0~beta5
@@ -1079,8 +1079,6 @@ libfreerdp-gdi.so.1.0 libfreerdp1 #MINVER#
  gdi_bitmap_new_ex at Base 1.0~beta5
  gdi_create_bitmap at Base 1.0~beta5
  gdi_dstblt at Base 1.0~beta5
- gdi_ellipse_cb at Base 1.0.1-2~
- gdi_ellipse_sc at Base 1.0.1-2~
  gdi_free at Base 1.0~beta5
  gdi_get_bitmap_pointer at Base 1.0~beta5
  gdi_get_brush_pointer at Base 1.0~beta5
@@ -1098,8 +1096,6 @@ libfreerdp-gdi.so.1.0 libfreerdp1 #MINVER#
  gdi_opaque_rect at Base 1.0~beta5
  gdi_palette_update at Base 1.0~beta5
  gdi_patblt at Base 1.0~beta5
- gdi_polygon_cb at Base 1.0.1-2~
- gdi_polygon_sc at Base 1.0.1-2~
  gdi_polyline at Base 1.0~beta5
  gdi_register_graphics at Base 1.0~beta5
  gdi_register_update_callbacks at Base 1.0~beta5
diff --git a/debian/patches/1.0-stable-sync.patch b/debian/patches/1.0-stable-sync.patch
deleted file mode 100644
index 5b7d31d..0000000
--- a/debian/patches/1.0-stable-sync.patch
+++ /dev/null
@@ -1,988 +0,0 @@
-diff --git a/channels/drdynvc/audin/pulse/CMakeLists.txt b/channels/drdynvc/audin/pulse/CMakeLists.txt
-index 10d6afe..fd6e25e 100644
---- a/channels/drdynvc/audin/pulse/CMakeLists.txt
-+++ b/channels/drdynvc/audin/pulse/CMakeLists.txt
-@@ -28,7 +28,7 @@ add_library(audin_pulse ${AUDIN_PULSE_SRCS})
- set_target_properties(audin_pulse PROPERTIES PREFIX "")
- 
- target_link_libraries(audin_pulse freerdp-utils)
--target_link_libraries(audin_pulse ${PULSE_LIBRARIES})
-+target_link_libraries(audin_pulse ${PULSEAUDIO_LIBRARY})
- 
- install(TARGETS audin_pulse DESTINATION ${FREERDP_PLUGIN_PATH})
- 
-diff --git a/channels/drdynvc/tsmf/pulse/CMakeLists.txt b/channels/drdynvc/tsmf/pulse/CMakeLists.txt
-index 373d4d3..144b5ff 100644
---- a/channels/drdynvc/tsmf/pulse/CMakeLists.txt
-+++ b/channels/drdynvc/tsmf/pulse/CMakeLists.txt
-@@ -28,7 +28,7 @@ add_library(tsmf_pulse ${TSMF_PULSE_SRCS})
- set_target_properties(tsmf_pulse PROPERTIES PREFIX "")
- 
- target_link_libraries(tsmf_pulse freerdp-utils)
--target_link_libraries(tsmf_pulse ${PULSE_LIBRARIES})
-+target_link_libraries(tsmf_pulse ${PULSEAUDIO_LIBRARY})
- 
- install(TARGETS tsmf_pulse DESTINATION ${FREERDP_PLUGIN_PATH})
- 
-diff --git a/channels/rdpdr/smartcard/scard_operations.c b/channels/rdpdr/smartcard/scard_operations.c
-index 26c7bc9..c04f3e0 100644
---- a/channels/rdpdr/smartcard/scard_operations.c
-+++ b/channels/rdpdr/smartcard/scard_operations.c
-@@ -238,7 +238,7 @@ static uint32 sc_map_state(uint32 state)
- 	if (state & SCARD_SPECIFIC)
- 		state = 0x00000006;
- 	else if (state & SCARD_NEGOTIABLE)
--		state = 0x00000005;
-+		state = 0x00000006;
- 	else if (state & SCARD_POWERED)
- 		state = 0x00000004;
- 	else if (state & SCARD_SWALLOWED)
-diff --git a/channels/rdpsnd/pulse/CMakeLists.txt b/channels/rdpsnd/pulse/CMakeLists.txt
-index 4460daf..bac3e51 100644
---- a/channels/rdpsnd/pulse/CMakeLists.txt
-+++ b/channels/rdpsnd/pulse/CMakeLists.txt
-@@ -28,6 +28,6 @@ add_library(rdpsnd_pulse ${RDPSND_PULSE_SRCS})
- set_target_properties(rdpsnd_pulse PROPERTIES PREFIX "")
- 
- target_link_libraries(rdpsnd_pulse freerdp-utils)
--target_link_libraries(rdpsnd_pulse ${PULSE_LIBRARIES})
-+target_link_libraries(rdpsnd_pulse ${PULSEAUDIO_LIBRARY})
- 
- install(TARGETS rdpsnd_pulse DESTINATION ${FREERDP_PLUGIN_PATH})
-diff --git a/channels/rdpsnd/rdpsnd_main.c b/channels/rdpsnd/rdpsnd_main.c
-index 48b5455..2d9fe27 100644
---- a/channels/rdpsnd/rdpsnd_main.c
-+++ b/channels/rdpsnd/rdpsnd_main.c
-@@ -395,6 +395,7 @@ static void rdpsnd_process_receive(rdpSvcPlugin* plugin, STREAM* data_in)
- 	if (rdpsnd->expectingWave)
- 	{
- 		rdpsnd_process_message_wave(rdpsnd, data_in);
-+		stream_free(data_in);
- 		return;
- 	}
- 
-@@ -425,6 +426,8 @@ static void rdpsnd_process_receive(rdpSvcPlugin* plugin, STREAM* data_in)
- 			DEBUG_WARN("unknown msgType %d", msgType);
- 			break;
- 	}
-+
-+	stream_free(data_in);
- }
- 
- static void rdpsnd_register_device_plugin(rdpsndPlugin* rdpsnd, rdpsndDevicePlugin* device)
-diff --git a/client/X11/xf_keyboard.c b/client/X11/xf_keyboard.c
-index 020b5e4..cb82fa4 100644
---- a/client/X11/xf_keyboard.c
-+++ b/client/X11/xf_keyboard.c
-@@ -109,7 +109,11 @@ int xf_kbd_read_keyboard_state(xfInfo* xfi)
- 		XQueryPointer(xfi->display, xfi->window->handle,
- 			&wdummy, &wdummy, &dummy, &dummy, &dummy, &dummy, &state);
- 	}
--
-+	else
-+	{
-+		XQueryPointer(xfi->display, DefaultRootWindow(xfi->display),
-+			&wdummy, &wdummy, &dummy, &dummy, &dummy, &dummy, &state);
-+  	}
- 	return state;
- }
- 
-diff --git a/client/X11/xfreerdp.c b/client/X11/xfreerdp.c
-index de58122..ceaf4c1 100644
---- a/client/X11/xfreerdp.c
-+++ b/client/X11/xfreerdp.c
-@@ -353,6 +353,7 @@ boolean xf_get_pixmap_info(xfInfo* xfi)
- 	XVisualInfo template;
- 	XPixmapFormatValues* pf;
- 	XPixmapFormatValues* pfs;
-+	XWindowAttributes window_attributes;
- 
- 	pfs = XListPixmapFormats(xfi->display, &pf_count);
- 
-@@ -379,6 +380,12 @@ boolean xf_get_pixmap_info(xfInfo* xfi)
- 	template.class = TrueColor;
- 	template.screen = xfi->screen_number;
- 
-+	if (XGetWindowAttributes(xfi->display, RootWindowOfScreen(xfi->screen), &window_attributes) == 0)
-+	{
-+		printf("xf_get_pixmap_info: XGetWindowAttributes failed\n");
-+		return false;
-+	}
-+
- 	vis = XGetVisualInfo(xfi->display, VisualClassMask | VisualScreenMask, &template, &vi_count);
- 
- 	if (vis == NULL)
-@@ -392,7 +399,7 @@ boolean xf_get_pixmap_info(xfInfo* xfi)
- 	{
- 		vi = vis + i;
- 
--		if (vi->depth == xfi->depth)
-+		if (vi->visual == window_attributes.visual)
- 		{
- 			xfi->visual = vi->visual;
- 			break;
-@@ -481,6 +488,7 @@ boolean xf_pre_connect(freerdp* instance)
- 
- 	settings->os_major_type = OSMAJORTYPE_UNIX;
- 	settings->os_minor_type = OSMINORTYPE_NATIVE_XSERVER;
-+
- 	settings->order_support[NEG_DSTBLT_INDEX] = true;
- 	settings->order_support[NEG_PATBLT_INDEX] = true;
- 	settings->order_support[NEG_SCRBLT_INDEX] = true;
-@@ -575,18 +583,26 @@ void cpuid(unsigned info, unsigned *eax, unsigned *ebx, unsigned *ecx, unsigned
- {
- #ifdef __GNUC__
- #if defined(__i386__) || defined(__x86_64__)
--	*eax = info;
- 	__asm volatile
--		("mov %%ebx, %%edi;" /* 32bit PIC: don't clobber ebx */
--		 "cpuid;"
--		 "mov %%ebx, %%esi;"
--		 "mov %%edi, %%ebx;"
--		 :"+a" (*eax), "=S" (*ebx), "=c" (*ecx), "=d" (*edx)
--		 : :"edi");
-+	(
-+		/* The EBX (or RBX register on x86_64) is used for the PIC base address
-+		   and must not be corrupted by our inline assembly. */
-+#if defined(__i386__)
-+		"mov %%ebx, %%esi;"
-+		"cpuid;"
-+		"xchg %%ebx, %%esi;"
-+#else
-+		"mov %%rbx, %%rsi;"
-+		"cpuid;"
-+		"xchg %%rbx, %%rsi;"
-+#endif
-+		: "=a" (*eax), "=S" (*ebx), "=c" (*ecx), "=d" (*edx)
-+		: "0" (info)
-+	);
- #endif
- #endif
- }
-- 
-+
- uint32 xf_detect_cpu()
- {
- 	unsigned int eax, ebx, ecx, edx = 0;
-diff --git a/include/freerdp/gdi/gdi.h b/include/freerdp/gdi/gdi.h
-index feab649..d1b36cb 100644
---- a/include/freerdp/gdi/gdi.h
-+++ b/include/freerdp/gdi/gdi.h
-@@ -65,6 +65,7 @@
- #define GDI_DSPDxax			0x00E20746 /* D = (S & P) | (~S & D) */
- #define GDI_SPna			0x000C0324 /* D = S & ~P */
- #define GDI_DSna			0x00220326 /* D = D & ~S */
-+#define GDI_DPa				0x00A000C9 /* D = D & P */
- #define GDI_PDxn			0x00A50065 /* D = D ^ ~P */
- 
- /* Brush Styles */
-diff --git a/include/freerdp/settings.h b/include/freerdp/settings.h
-index 5a9acd8..7b5a1b0 100644
---- a/include/freerdp/settings.h
-+++ b/include/freerdp/settings.h
-@@ -309,7 +309,9 @@ struct rdp_settings
- 	boolean console_audio; /* 160 */
- 	boolean console_session; /* 161 */
- 	uint32 redirected_session_id; /* 162 */
--	uint32 paddingG[176 - 163]; /* 163 */
-+	boolean audio_playback; /* 163 */
-+	boolean audio_capture; /* 164 */
-+	uint32 paddingG[176 - 165]; /* 165 */
- 
- 	/* Output Control */
- 	boolean refresh_rect; /* 176 */
-diff --git a/libfreerdp-cache/bitmap.c b/libfreerdp-cache/bitmap.c
-index 652a391..c1583ac 100644
---- a/libfreerdp-cache/bitmap.c
-+++ b/libfreerdp-cache/bitmap.c
-@@ -162,9 +162,10 @@ rdpBitmap* bitmap_cache_get(rdpBitmapCache* bitmap_cache, uint32 id, uint32 inde
- 	}
- 
- 	if (index == BITMAP_CACHE_WAITING_LIST_INDEX)
--		index = bitmap_cache->cells[id].number - 1;
--
--	if (index > bitmap_cache->cells[id].number)
-+	{
-+		index = bitmap_cache->cells[id].number;
-+	}
-+	else if (index > bitmap_cache->cells[id].number)
- 	{
- 		printf("get invalid bitmap index %d in cell id: %d\n", index, id);
- 		return NULL;
-@@ -184,9 +185,10 @@ void bitmap_cache_put(rdpBitmapCache* bitmap_cache, uint32 id, uint32 index, rdp
- 	}
- 
- 	if (index == BITMAP_CACHE_WAITING_LIST_INDEX)
--		index = bitmap_cache->cells[id].number - 1;
--
--	if (index > bitmap_cache->cells[id].number)
-+	{
-+		index = bitmap_cache->cells[id].number;
-+	}
-+	else if (index > bitmap_cache->cells[id].number)
- 	{
- 		printf("put invalid bitmap index %d in cell id: %d\n", index, id);
- 		return;
-@@ -244,7 +246,8 @@ rdpBitmapCache* bitmap_cache_new(rdpSettings* settings)
- 		for (i = 0; i < (int) bitmap_cache->maxCells; i++)
- 		{
- 			bitmap_cache->cells[i].number = settings->bitmapCacheV2CellInfo[i].numEntries;
--			bitmap_cache->cells[i].entries = (rdpBitmap**) xzalloc(sizeof(rdpBitmap*) * bitmap_cache->cells[i].number);
-+			/* allocate an extra entry for BITMAP_CACHE_WAITING_LIST_INDEX */
-+			bitmap_cache->cells[i].entries = (rdpBitmap**) xzalloc(sizeof(rdpBitmap*) * (bitmap_cache->cells[i].number + 1));
- 		}
- 	}
- 
-@@ -260,7 +263,7 @@ void bitmap_cache_free(rdpBitmapCache* bitmap_cache)
- 	{
- 		for (i = 0; i < (int) bitmap_cache->maxCells; i++)
- 		{
--			for (j = 0; j < (int) bitmap_cache->cells[i].number; j++)
-+			for (j = 0; j < (int) bitmap_cache->cells[i].number + 1; j++)
- 			{
- 				bitmap = bitmap_cache->cells[i].entries[j];
- 
-diff --git a/libfreerdp-codec/bitmap.c b/libfreerdp-codec/bitmap.c
-index dc21a4f..635a583 100644
---- a/libfreerdp-codec/bitmap.c
-+++ b/libfreerdp-codec/bitmap.c
-@@ -437,10 +437,14 @@ static boolean bitmap_decompress4(uint8* srcData, uint8* dstData, int width, int
-  */
- boolean bitmap_decompress(uint8* srcData, uint8* dstData, int width, int height, int size, int srcBpp, int dstBpp)
- {
-+        uint8 * TmpBfr;
-+
- 	if (srcBpp == 16 && dstBpp == 16)
- 	{
--		RleDecompress16to16(srcData, size, dstData, width * 2, width, height);
--		freerdp_bitmap_flip(dstData, dstData, width * 2, height);
-+	        TmpBfr = (uint8*) xmalloc(width * height * 2);
-+	        RleDecompress16to16(srcData, size, TmpBfr, width * 2, width, height);
-+	        freerdp_bitmap_flip(TmpBfr, dstData, width * 2, height);
-+	        xfree(TmpBfr);
- 	}
- 	else if (srcBpp == 32 && dstBpp == 32)
- 	{
-@@ -449,18 +453,24 @@ boolean bitmap_decompress(uint8* srcData, uint8* dstData, int width, int height,
- 	}
- 	else if (srcBpp == 15 && dstBpp == 15)
- 	{
--		RleDecompress16to16(srcData, size, dstData, width * 2, width, height);
--		freerdp_bitmap_flip(dstData, dstData, width * 2, height);
-+                TmpBfr = (uint8*) xmalloc(width * height * 2);
-+                RleDecompress16to16(srcData, size, TmpBfr, width * 2, width, height);
-+                freerdp_bitmap_flip(TmpBfr, dstData, width * 2, height);
-+                xfree(TmpBfr);
- 	}
- 	else if (srcBpp == 8 && dstBpp == 8)
- 	{
--		RleDecompress8to8(srcData, size, dstData, width, width, height);
--		freerdp_bitmap_flip(dstData, dstData, width, height);
-+                TmpBfr = (uint8*) xmalloc(width * height);
-+                RleDecompress8to8(srcData, size, TmpBfr, width, width, height);
-+                freerdp_bitmap_flip(TmpBfr, dstData, width, height);
-+                xfree(TmpBfr);
- 	}
- 	else if (srcBpp == 24 && dstBpp == 24)
- 	{
--		RleDecompress24to24(srcData, size, dstData, width * 3, width, height);
--		freerdp_bitmap_flip(dstData, dstData, width * 3, height);
-+                TmpBfr = (uint8*) xmalloc(width * height * 3);
-+                RleDecompress24to24(srcData, size, TmpBfr, width * 3, width, height);
-+                freerdp_bitmap_flip(TmpBfr, dstData, width * 3, height);
-+                xfree(TmpBfr);
- 	}
- 	else
- 	{
-diff --git a/libfreerdp-core/capabilities.c b/libfreerdp-core/capabilities.c
-index 6db2411..2766ba9 100644
---- a/libfreerdp-core/capabilities.c
-+++ b/libfreerdp-core/capabilities.c
-@@ -1870,14 +1870,13 @@ void rdp_write_demand_active(STREAM* s, rdpSettings* settings)
- 	stream_seek_uint16(s); /* numberCapabilities (2 bytes) */
- 	stream_write_uint16(s, 0); /* pad2Octets (2 bytes) */
- 
--	numberCapabilities = 14;
-+	numberCapabilities = 13;
- 	rdp_write_general_capability_set(s, settings);
- 	rdp_write_bitmap_capability_set(s, settings);
- 	rdp_write_order_capability_set(s, settings);
- 	rdp_write_pointer_capability_set(s, settings);
- 	rdp_write_input_capability_set(s, settings);
- 	rdp_write_virtual_channel_capability_set(s, settings);
--	rdp_write_bitmap_cache_host_support_capability_set(s, settings);
- 	rdp_write_share_capability_set(s, settings);
- 	rdp_write_font_capability_set(s, settings);
- 	rdp_write_multifragment_update_capability_set(s, settings);
-@@ -1886,6 +1885,12 @@ void rdp_write_demand_active(STREAM* s, rdpSettings* settings)
- 	rdp_write_surface_commands_capability_set(s, settings);
- 	rdp_write_bitmap_codecs_capability_set(s, settings);
- 
-+	if (settings->persistent_bitmap_cache)
-+	{
-+		numberCapabilities++;
-+		rdp_write_bitmap_cache_host_support_capability_set(s, settings);
-+	}
-+
- 	stream_get_mark(s, em);
- 
- 	stream_set_mark(s, lm); /* go back to lengthCombinedCapabilities */
-diff --git a/libfreerdp-core/certificate.c b/libfreerdp-core/certificate.c
-index 69fcf1d..62c0121 100644
---- a/libfreerdp-core/certificate.c
-+++ b/libfreerdp-core/certificate.c
-@@ -664,7 +664,7 @@ void certificate_data_print(rdpCertificateStore* certificate_store, rdpCertifica
- 	if (!fp)
- 		return;
- 
--	fprintf(certificate_store->fp,"%s %s\n", certificate_data->hostname, certificate_data->fingerprint);
-+	fprintf(fp, "%s %s\n", certificate_data->hostname, certificate_data->fingerprint);
- 	fclose(fp);
- }
- 
-diff --git a/libfreerdp-core/connection.c b/libfreerdp-core/connection.c
-index fb4fde3..62d9d4b 100644
---- a/libfreerdp-core/connection.c
-+++ b/libfreerdp-core/connection.c
-@@ -489,9 +489,6 @@ boolean rdp_client_connect_finalize(rdpRdp* rdp)
- 		return false;
- 	if (!rdp_send_client_control_pdu(rdp, CTRLACTION_REQUEST_CONTROL))
- 		return false;
--
--	rdp->input->SynchronizeEvent(rdp->input, 0);
--
- 	if (!rdp_send_client_persistent_key_list_pdu(rdp))
- 		return false;
- 	if (!rdp_send_client_font_list_pdu(rdp, FONTLIST_FIRST | FONTLIST_LAST))
-diff --git a/libfreerdp-core/crypto.c b/libfreerdp-core/crypto.c
-index 2d24da5..b79ac7a 100644
---- a/libfreerdp-core/crypto.c
-+++ b/libfreerdp-core/crypto.c
-@@ -107,6 +107,8 @@ void crypto_des3_decrypt(CryptoDes3 des3, uint32 length, const uint8* in_data, u
- 
- void crypto_des3_free(CryptoDes3 des3)
- {
-+	if (des3 == NULL)
-+		return;
- 	EVP_CIPHER_CTX_cleanup(&des3->des3_ctx);
- 	xfree(des3);
- }
-@@ -135,6 +137,8 @@ void crypto_hmac_final(CryptoHmac hmac, uint8* out_data, uint32 length)
- 
- void crypto_hmac_free(CryptoHmac hmac)
- {
-+	if (hmac == NULL)
-+		return;
- 	HMAC_CTX_cleanup(&hmac->hmac_ctx);
- 	xfree(hmac);
- }
-@@ -149,6 +153,8 @@ CryptoCert crypto_cert_read(uint8* data, uint32 length)
- 
- void crypto_cert_free(CryptoCert cert)
- {
-+	if (cert == NULL)
-+		return;
- 	X509_free(cert->px509);
- 	xfree(cert);
- }
-diff --git a/libfreerdp-core/fastpath.c b/libfreerdp-core/fastpath.c
-index c915666..0d68f18 100644
---- a/libfreerdp-core/fastpath.c
-+++ b/libfreerdp-core/fastpath.c
-@@ -531,9 +531,9 @@ boolean fastpath_send_input_pdu(rdpFastPath* fastpath, STREAM* s)
- 	rdp = fastpath->rdp;
- 
- 	length = stream_get_length(s);
--	if (length > 127)
-+	if (length >= (2 << 14))
- 	{
--		printf("Maximum FastPath PDU length is 127\n");
-+		printf("Maximum FastPath PDU length is 32767\n");
- 		return false;
- 	}
- 
-@@ -553,23 +553,25 @@ boolean fastpath_send_input_pdu(rdpFastPath* fastpath, STREAM* s)
- 	 * because we can leave room for fixed-length header, store all
- 	 * the data first and then store the header.
- 	 */
--	stream_write_uint16_be(s, 0x8000 | (length + sec_bytes));
-+	stream_write_uint16_be(s, 0x8000 | length);
- 
- 	if (sec_bytes > 0)
- 	{
--		uint8* ptr;
-+		uint8* fpInputEvents;
-+		uint16 fpInputEvents_length;
- 
--		ptr = stream_get_tail(s) + sec_bytes;
-+		fpInputEvents = stream_get_tail(s) + sec_bytes;
-+		fpInputEvents_length = length - 3 - sec_bytes;
- 		if (rdp->sec_flags & SEC_SECURE_CHECKSUM)
--			security_salted_mac_signature(rdp, ptr, length - 3, true, stream_get_tail(s));
-+			security_salted_mac_signature(rdp, fpInputEvents, fpInputEvents_length, true, stream_get_tail(s));
- 		else
--			security_mac_signature(rdp, ptr, length - 3, stream_get_tail(s));
--		security_encrypt(ptr, length - 3, rdp);
-+			security_mac_signature(rdp, fpInputEvents, fpInputEvents_length, stream_get_tail(s));
-+		security_encrypt(fpInputEvents, fpInputEvents_length, rdp);
- 	}
- 
- 	rdp->sec_flags = 0;
- 
--	stream_set_pos(s, length + sec_bytes);
-+	stream_set_pos(s, length);
- 	if (transport_write(fastpath->rdp->transport, s) < 0)
- 		return false;
- 
-diff --git a/libfreerdp-core/freerdp.c b/libfreerdp-core/freerdp.c
-index 3109822..a4d44b9 100644
---- a/libfreerdp-core/freerdp.c
-+++ b/libfreerdp-core/freerdp.c
-@@ -192,11 +192,16 @@ void freerdp_context_new(freerdp* instance)
- 
- void freerdp_context_free(freerdp* instance)
- {
-+	if (instance->context == NULL)
-+		return;
-+
- 	IFCALL(instance->ContextFree, instance, instance->context);
- 
- 	rdp_free(instance->context->rdp);
- 	graphics_free(instance->context->graphics);
-+
- 	xfree(instance->context);
-+	instance->context = NULL;
- }
- 
- uint32 freerdp_error_info(freerdp* instance)
-@@ -219,11 +224,10 @@ freerdp* freerdp_new()
- 	return instance;
- }
- 
--void freerdp_free(freerdp* freerdp)
-+void freerdp_free(freerdp* instance)
- {
--	if (freerdp)
-+	if (instance)
- 	{
--		freerdp_context_free(freerdp);
--		xfree(freerdp);
-+		xfree(instance);
- 	}
- }
-diff --git a/libfreerdp-core/info.c b/libfreerdp-core/info.c
-index 21a7d4f..a10999b 100644
---- a/libfreerdp-core/info.c
-+++ b/libfreerdp-core/info.c
-@@ -243,10 +243,10 @@ boolean rdp_read_client_auto_reconnect_cookie(STREAM* s, rdpSettings* settings)
- 	if (stream_get_left(s) < 28)
- 		return false;
- 
--	stream_write_uint32(s, autoReconnectCookie->cbLen); /* cbLen (4 bytes) */
--	stream_write_uint32(s, autoReconnectCookie->version); /* version (4 bytes) */
--	stream_write_uint32(s, autoReconnectCookie->logonId); /* LogonId (4 bytes) */
--	stream_write(s, autoReconnectCookie->securityVerifier, 16); /* SecurityVerifier */
-+	stream_read_uint32(s, autoReconnectCookie->cbLen); /* cbLen (4 bytes) */
-+	stream_read_uint32(s, autoReconnectCookie->version); /* version (4 bytes) */
-+	stream_read_uint32(s, autoReconnectCookie->logonId); /* LogonId (4 bytes) */
-+	stream_read(s, autoReconnectCookie->securityVerifier, 16); /* SecurityVerifier */
- 
- 	return true;
- }
-@@ -473,7 +473,6 @@ void rdp_write_info_packet(STREAM* s, rdpSettings* settings)
- 	uint16 cbUserName;
- 	uint8* password;
- 	uint16 cbPassword;
--	size_t passwordLength;
- 	uint8* alternateShell;
- 	uint16 cbAlternateShell;
- 	uint8* workingDir;
-@@ -486,8 +485,13 @@ void rdp_write_info_packet(STREAM* s, rdpSettings* settings)
- 		INFO_LOGONNOTIFY |
- 		INFO_MAXIMIZESHELL |
- 		INFO_ENABLEWINDOWSKEY |
--		INFO_DISABLECTRLALTDEL |
--		RNS_INFO_AUDIOCAPTURE;
-+		INFO_DISABLECTRLALTDEL;
-+
-+	if (settings->audio_capture)
-+		flags |= RNS_INFO_AUDIOCAPTURE;
-+
-+	if (!settings->audio_playback)
-+		flags |= INFO_NOAUDIOPLAYBACK;
- 
- 	if (settings->autologon)
- 		flags |= INFO_AUTOLOGON;
-@@ -511,13 +515,12 @@ void rdp_write_info_packet(STREAM* s, rdpSettings* settings)
- 	{
- 		usedPasswordCookie = true;
- 		password = (uint8*)settings->password_cookie->data;
--		passwordLength = settings->password_cookie->length;
--		cbPassword = passwordLength - 2;
-+		cbPassword = settings->password_cookie->length - 2;	/* Strip double zero termination */
- 	}
- 	else
- 	{
--		password = (uint8*)freerdp_uniconv_out(settings->uniconv, settings->password, &passwordLength);
--		cbPassword = passwordLength;
-+		password = (uint8*)freerdp_uniconv_out(settings->uniconv, settings->password, &length);
-+		cbPassword = length;
- 	}
- 
- 	alternateShell = (uint8*)freerdp_uniconv_out(settings->uniconv, settings->shell, &length);
-@@ -544,7 +547,7 @@ void rdp_write_info_packet(STREAM* s, rdpSettings* settings)
- 	stream_write_uint16(s, 0);
- 
- 	if (cbPassword > 0)
--		stream_write(s, password, passwordLength);
-+		stream_write(s, password, cbPassword);
- 	stream_write_uint16(s, 0);
- 
- 	if (cbAlternateShell > 0)
-diff --git a/libfreerdp-core/rdp.c b/libfreerdp-core/rdp.c
-index 8d499e8..e76595f 100644
---- a/libfreerdp-core/rdp.c
-+++ b/libfreerdp-core/rdp.c
-@@ -858,7 +858,7 @@ void rdp_set_blocking_mode(rdpRdp* rdp, boolean blocking)
- 
- int rdp_check_fds(rdpRdp* rdp)
- {
--	return transport_check_fds(rdp->transport);
-+	return transport_check_fds(&(rdp->transport));
- }
- 
- /**
-@@ -902,6 +902,11 @@ void rdp_free(rdpRdp* rdp)
- {
- 	if (rdp != NULL)
- 	{
-+		crypto_rc4_free(rdp->rc4_decrypt_key);
-+		crypto_rc4_free(rdp->rc4_encrypt_key);
-+		crypto_des3_free(rdp->fips_encrypt);
-+		crypto_des3_free(rdp->fips_decrypt);
-+		crypto_hmac_free(rdp->fips_hmac);
- 		extension_free(rdp->extension);
- 		settings_free(rdp->settings);
- 		transport_free(rdp->transport);
-diff --git a/libfreerdp-core/rdp.h b/libfreerdp-core/rdp.h
-index 4a295f1..5cff558 100644
---- a/libfreerdp-core/rdp.h
-+++ b/libfreerdp-core/rdp.h
-@@ -136,8 +136,10 @@ struct rdp_rdp
- 	struct rdp_mppc* mppc;
- 	struct crypto_rc4_struct* rc4_decrypt_key;
- 	int decrypt_use_count;
-+	int decrypt_checksum_use_count;
- 	struct crypto_rc4_struct* rc4_encrypt_key;
- 	int encrypt_use_count;
-+	int encrypt_checksum_use_count;
- 	struct crypto_des3_struct* fips_encrypt;
- 	struct crypto_des3_struct* fips_decrypt;
- 	struct crypto_hmac_struct* fips_hmac;
-diff --git a/libfreerdp-core/redirection.c b/libfreerdp-core/redirection.c
-index 113c65a..6568084 100644
---- a/libfreerdp-core/redirection.c
-+++ b/libfreerdp-core/redirection.c
-@@ -105,7 +105,7 @@ boolean rdp_recv_server_redirection_pdu(rdpRdp* rdp, STREAM* s)
- 	if (redirection->flags & LB_PASSWORD)
- 	{
- 		uint32 passwordLength;
--		stream_read_uint32(s, passwordLength);
-+		stream_read_uint32(s, passwordLength);	/* Note: length (hopefully) includes double zero termination */
- 		freerdp_blob_alloc(&redirection->password_cookie, passwordLength);
- 		stream_read(s, redirection->password_cookie.data, passwordLength);
- 
-diff --git a/libfreerdp-core/security.c b/libfreerdp-core/security.c
-index 8df8a65..9571f00 100644
---- a/libfreerdp-core/security.c
-+++ b/libfreerdp-core/security.c
-@@ -262,14 +262,17 @@ void security_salted_mac_signature(rdpRdp *rdp, uint8* data, uint32 length, bool
- 
- 	security_uint32_le(length_le, length); /* length must be little-endian */
- 	if (encryption)
--		security_uint32_le(use_count_le, rdp->encrypt_use_count);
-+	{
-+		security_uint32_le(use_count_le, rdp->encrypt_checksum_use_count);
-+	}
- 	else
- 	{
- 		/*
- 		 * We calculate checksum on plain text, so we must have already
--		 * decrypt it, which means decrypt_use_count is off by one.
-+		 * decrypt it, which means decrypt_checksum_use_count is
-+		 * off by one.
- 		 */
--		security_uint32_le(use_count_le, rdp->decrypt_use_count - 1);
-+		security_uint32_le(use_count_le, rdp->decrypt_checksum_use_count - 1);
- 	}
- 
- 	/* SHA1_Digest = SHA1(MACKeyN + pad1 + length + data) */
-@@ -358,6 +361,9 @@ boolean security_establish_keys(uint8* client_random, rdpRdp* rdp)
- 
- 		printf("FIPS Compliant encryption level.\n");
- 
-+		/* disable fastpath input; it doesnt handle FIPS encryption yet */
-+		rdp->settings->fastpath_input = false;
-+
- 		sha1 = crypto_sha1_init();
- 		crypto_sha1_update(sha1, client_random + 16, 16);
- 		crypto_sha1_update(sha1, server_random + 16, 16);
-@@ -414,6 +420,10 @@ boolean security_establish_keys(uint8* client_random, rdpRdp* rdp)
- 
- 	memcpy(rdp->decrypt_update_key, rdp->decrypt_key, 16);
- 	memcpy(rdp->encrypt_update_key, rdp->encrypt_key, 16);
-+	rdp->decrypt_use_count = 0;
-+	rdp->decrypt_checksum_use_count = 0;
-+	rdp->encrypt_use_count =0;
-+	rdp->encrypt_checksum_use_count =0;
- 
- 	return true;
- }
-@@ -458,7 +468,8 @@ boolean security_encrypt(uint8* data, int length, rdpRdp* rdp)
- 		rdp->encrypt_use_count = 0;
- 	}
- 	crypto_rc4(rdp->rc4_encrypt_key, length, data, data);
--	rdp->encrypt_use_count += 1;
-+	rdp->encrypt_use_count++;
-+	rdp->encrypt_checksum_use_count++;
- 	return true;
- }
- 
-@@ -473,6 +484,7 @@ boolean security_decrypt(uint8* data, int length, rdpRdp* rdp)
- 	}
- 	crypto_rc4(rdp->rc4_decrypt_key, length, data, data);
- 	rdp->decrypt_use_count += 1;
-+	rdp->decrypt_checksum_use_count++;
- 	return true;
- }
- 
-diff --git a/libfreerdp-core/tls.c b/libfreerdp-core/tls.c
-index 3d49068..106f9ca 100644
---- a/libfreerdp-core/tls.c
-+++ b/libfreerdp-core/tls.c
-@@ -73,7 +73,7 @@ boolean tls_accept(rdpTls* tls, const char* cert_file, const char* privatekey_fi
- {
- 	int connection_status;
- 
--	tls->ctx = SSL_CTX_new(TLSv1_server_method());
-+	tls->ctx = SSL_CTX_new(SSLv23_server_method());
- 
- 	if (tls->ctx == NULL)
- 	{
-@@ -81,6 +81,12 @@ boolean tls_accept(rdpTls* tls, const char* cert_file, const char* privatekey_fi
- 		return false;
- 	}
- 
-+	/*
-+	 * We only want SSLv3 and TLSv1, so disable SSLv2.
-+	 * SSLv3 is used by, eg. Microsoft RDC for Mac OS X.
-+	 */
-+	SSL_CTX_set_options(tls->ctx, SSL_OP_NO_SSLv2);
-+
- 	if (SSL_CTX_use_RSAPrivateKey_file(tls->ctx, privatekey_file, SSL_FILETYPE_PEM) <= 0)
- 	{
- 		printf("SSL_CTX_use_RSAPrivateKey_file failed\n");
-diff --git a/libfreerdp-core/transport.c b/libfreerdp-core/transport.c
-index 0bfc62f..d66d0e6 100644
---- a/libfreerdp-core/transport.c
-+++ b/libfreerdp-core/transport.c
-@@ -277,12 +277,13 @@ void transport_get_fds(rdpTransport* transport, void** rfds, int* rcount)
- 	wait_obj_get_fds(transport->recv_event, rfds, rcount);
- }
- 
--int transport_check_fds(rdpTransport* transport)
-+int transport_check_fds(rdpTransport** ptransport)
- {
- 	int pos;
- 	int status;
- 	uint16 length;
- 	STREAM* received;
-+	rdpTransport* transport = *ptransport;
- 
- 	wait_obj_clear(transport->recv_event);
- 
-@@ -360,6 +361,9 @@ int transport_check_fds(rdpTransport* transport)
- 
- 		if (status < 0)
- 			return status;
-+
-+		/* transport might now have been freed by rdp_client_redirect and a new rdp->transport created */
-+		transport = *ptransport;
- 	}
- 
- 	return 0;
-diff --git a/libfreerdp-core/transport.h b/libfreerdp-core/transport.h
-index 977c837..86cf304 100644
---- a/libfreerdp-core/transport.h
-+++ b/libfreerdp-core/transport.h
-@@ -72,7 +72,7 @@ boolean transport_accept_nla(rdpTransport* transport);
- int transport_read(rdpTransport* transport, STREAM* s);
- int transport_write(rdpTransport* transport, STREAM* s);
- void transport_get_fds(rdpTransport* transport, void** rfds, int* rcount);
--int transport_check_fds(rdpTransport* transport);
-+int transport_check_fds(rdpTransport** ptransport);
- boolean transport_set_blocking_mode(rdpTransport* transport, boolean blocking);
- rdpTransport* transport_new(rdpSettings* settings);
- void transport_free(rdpTransport* transport);
-diff --git a/libfreerdp-core/update.c b/libfreerdp-core/update.c
-index 17122ad..c828b22 100644
---- a/libfreerdp-core/update.c
-+++ b/libfreerdp-core/update.c
-@@ -175,6 +175,17 @@ void update_read_pointer_color(STREAM* s, POINTER_COLOR_UPDATE* pointer_color)
- 	stream_read_uint16(s, pointer_color->lengthAndMask); /* lengthAndMask (2 bytes) */
- 	stream_read_uint16(s, pointer_color->lengthXorMask); /* lengthXorMask (2 bytes) */
- 
-+	/**
-+	 * There does not seem to be any documentation on why
-+	 * xPos / yPos can be larger than width / height
-+	 * so it is missing in documentation or a bug in implementation
-+	 * 2.2.9.1.1.4.4 Color Pointer Update (TS_COLORPOINTERATTRIBUTE)
-+	 */
-+	if (pointer_color->xPos >= pointer_color->width)
-+		pointer_color->xPos = 0;
-+	if (pointer_color->yPos >= pointer_color->height)
-+		pointer_color->yPos = 0;
-+
- 	if (pointer_color->lengthXorMask > 0)
- 	{
- 		pointer_color->xorMaskData = (uint8*) xmalloc(pointer_color->lengthXorMask);
-diff --git a/libfreerdp-gdi/16bpp.c b/libfreerdp-gdi/16bpp.c
-index 70f41ca..2b6bf74 100644
---- a/libfreerdp-gdi/16bpp.c
-+++ b/libfreerdp-gdi/16bpp.c
-@@ -434,6 +434,31 @@ static int BitBlt_SPna_16bpp(HGDI_DC hdcDest, int nXDest, int nYDest, int nWidth
- 	return 0;
- }
- 
-+static int BitBlt_DPa_16bpp(HGDI_DC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight)
-+{
-+	int x, y;
-+	uint16* dstp;
-+	uint16* patp;
-+
-+	for (y = 0; y < nHeight; y++)
-+	{
-+		dstp = (uint16*) gdi_get_bitmap_pointer(hdcDest, nXDest, nYDest + y);
-+
-+		if (dstp != 0)
-+		{
-+			for (x = 0; x < nWidth; x++)
-+			{
-+				patp = (uint16*) gdi_get_brush_pointer(hdcDest, x, y);
-+
-+				*dstp = *dstp & *patp;
-+				dstp++;
-+			}
-+		}
-+	}
-+
-+	return 0;
-+}
-+
- static int BitBlt_PDxn_16bpp(HGDI_DC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight)
- {
- 	int x, y;
-@@ -778,6 +803,10 @@ int PatBlt_16bpp(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, i
- 			return BitBlt_WHITENESS_16bpp(hdc, nXLeft, nYLeft, nWidth, nHeight);
- 			break;
- 
-+		case GDI_DPa:
-+			return BitBlt_DPa_16bpp(hdc, nXLeft, nYLeft, nWidth, nHeight);
-+			break;
-+
- 		case GDI_PDxn:
- 			return BitBlt_PDxn_16bpp(hdc, nXLeft, nYLeft, nWidth, nHeight);
- 			break;
-diff --git a/libfreerdp-gdi/32bpp.c b/libfreerdp-gdi/32bpp.c
-index 728215a..fda6790 100644
---- a/libfreerdp-gdi/32bpp.c
-+++ b/libfreerdp-gdi/32bpp.c
-@@ -487,6 +487,31 @@ static int BitBlt_DSna_32bpp(HGDI_DC hdcDest, int nXDest, int nYDest, int nWidth
- 	return 0;
- }
- 
-+static int BitBlt_DPa_32bpp(HGDI_DC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight)
-+{
-+	int x, y;
-+	uint32* dstp;
-+	uint32* patp;
-+
-+	for (y = 0; y < nHeight; y++)
-+	{
-+		dstp = (uint32*) gdi_get_bitmap_pointer(hdcDest, nXDest, nYDest + y);
-+
-+		if (dstp != 0)
-+		{
-+			for (x = 0; x < nWidth; x++)
-+			{
-+				patp = (uint32*) gdi_get_brush_pointer(hdcDest, x, y);
-+
-+				*dstp = *dstp & *patp;
-+				dstp++;
-+			}
-+		}
-+	}
-+
-+	return 0;
-+}
-+
- static int BitBlt_PDxn_32bpp(HGDI_DC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight)
- {
- 	int x, y;
... 221 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-remote/freerdp.git



More information about the pkg-remote-commits mailing list