Blob Blame History Raw
From 807e2ee016386a396b7b57c3c675ff64e8b12f74 Mon Sep 17 00:00:00 2001
From: Daryl Poe <daryl.poe@hp.com>
Date: Thu, 25 Jul 2013 15:01:56 -0600
Subject: [PATCH] cover the case of servers asking for cached bitmaps they have
 never defined

---
 libfreerdp-cache/bitmap.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libfreerdp-cache/bitmap.c b/libfreerdp-cache/bitmap.c
index c1583ac..9ed241d 100644
--- a/libfreerdp-cache/bitmap.c
+++ b/libfreerdp-cache/bitmap.c
@@ -33,6 +33,9 @@ void update_gdi_memblt(rdpContext* context, MEMBLT_ORDER* memblt)
 	else
 		bitmap = bitmap_cache_get(cache->bitmap, (uint8) memblt->cacheId, memblt->cacheIndex);
 
+	/* XP-SP2 servers sometimes ask for cached bitmaps they've never defined. */
+	if (bitmap == NULL) return;
+
 	memblt->bitmap = bitmap;
 	IFCALL(cache->bitmap->MemBlt, context, memblt);
 }
@@ -47,6 +50,9 @@ void update_gdi_mem3blt(rdpContext* context, MEM3BLT_ORDER* mem3blt)
 	else
 		bitmap = bitmap_cache_get(cache->bitmap, (uint8) mem3blt->cacheId, mem3blt->cacheIndex);
 
+	/* XP-SP2 servers sometimes ask for cached bitmaps they've never defined. */
+	if (bitmap == NULL) return;
+
 	mem3blt->bitmap = bitmap;
 	IFCALL(cache->bitmap->Mem3Blt, context, mem3blt);
 }
-- 
2.5.0