From 5b1e084fe287dbd6a4789452442b38669b21b6ce Mon Sep 17 00:00:00 2001 From: Henrik Andersson Date: Fri, 22 Mar 2013 10:17:11 +0000 Subject: [PATCH] Fix crash when a invalid device is received in rdpdr_process_irp. Thanks goes to David Fries for the patch. git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/rdesktop/trunk@1701 423420c4-83ab-492f-b58f-81f9feb106b5 --- rdpdr.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rdpdr.c b/rdpdr.c index dd8e50c..e51d024 100644 --- a/rdpdr.c +++ b/rdpdr.c @@ -379,6 +379,14 @@ rdpdr_process_irp(STREAM s) buffer = (uint8 *) xmalloc(1024); buffer[0] = 0; + if (device >= RDPDR_MAX_DEVICES) + { + error("invalid irp device 0x%lx file 0x%lx id 0x%lx major 0x%lx minor 0x%lx\n", + device, file, id, major, minor); + xfree(buffer); + return; + } + switch (g_rdpdr_device[device].device_type) { case DEVICE_TYPE_SERIAL: