0c7016
From 807e2ee016386a396b7b57c3c675ff64e8b12f74 Mon Sep 17 00:00:00 2001
0c7016
From: Daryl Poe <daryl.poe@hp.com>
0c7016
Date: Thu, 25 Jul 2013 15:01:56 -0600
0c7016
Subject: [PATCH] cover the case of servers asking for cached bitmaps they have
0c7016
 never defined
0c7016
0c7016
---
0c7016
 libfreerdp-cache/bitmap.c | 6 ++++++
0c7016
 1 file changed, 6 insertions(+)
0c7016
0c7016
diff --git a/libfreerdp-cache/bitmap.c b/libfreerdp-cache/bitmap.c
0c7016
index c1583ac..9ed241d 100644
0c7016
--- a/libfreerdp-cache/bitmap.c
0c7016
+++ b/libfreerdp-cache/bitmap.c
0c7016
@@ -33,6 +33,9 @@ void update_gdi_memblt(rdpContext* context, MEMBLT_ORDER* memblt)
0c7016
 	else
0c7016
 		bitmap = bitmap_cache_get(cache->bitmap, (uint8) memblt->cacheId, memblt->cacheIndex);
0c7016
 
0c7016
+	/* XP-SP2 servers sometimes ask for cached bitmaps they've never defined. */
0c7016
+	if (bitmap == NULL) return;
0c7016
+
0c7016
 	memblt->bitmap = bitmap;
0c7016
 	IFCALL(cache->bitmap->MemBlt, context, memblt);
0c7016
 }
0c7016
@@ -47,6 +50,9 @@ void update_gdi_mem3blt(rdpContext* context, MEM3BLT_ORDER* mem3blt)
0c7016
 	else
0c7016
 		bitmap = bitmap_cache_get(cache->bitmap, (uint8) mem3blt->cacheId, mem3blt->cacheIndex);
0c7016
 
0c7016
+	/* XP-SP2 servers sometimes ask for cached bitmaps they've never defined. */
0c7016
+	if (bitmap == NULL) return;
0c7016
+
0c7016
 	mem3blt->bitmap = bitmap;
0c7016
 	IFCALL(cache->bitmap->Mem3Blt, context, mem3blt);
0c7016
 }
0c7016
-- 
0c7016
2.5.0
0c7016