From 09e90b4ee9e91f52644b66b145912f1e7912752a Mon Sep 17 00:00:00 2001 From: Peter Kallden Date: Thu, 4 Mar 2004 08:08:13 +0000 Subject: [PATCH] error handling - dont segfault when handle already closed upon closing - volker milde git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@622 423420c4-83ab-492f-b58f-81f9feb106b5 --- printer.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/printer.c b/printer.c index 9be3e9a..84d5d1f 100644 --- a/printer.c +++ b/printer.c @@ -109,14 +109,14 @@ printer_create(uint32 device_id, uint32 access, uint32 share_mode, uint32 dispos static NTSTATUS printer_close(HANDLE handle) { - PRINTER *pprinter_data; - - pprinter_data = get_printer_data(handle); - - g_rdpdr_device[get_device_index(handle)].handle = 0; - - pclose(pprinter_data->printer_fp); - + int i = get_device_index(handle); + if (i >= 0) + { + PRINTER *pprinter_data = g_rdpdr_device[i].pdevice_data; + if (pprinter_data) + pclose(pprinter_data->printer_fp); + g_rdpdr_device[i].handle = 0; + } return STATUS_SUCCESS; }