From 42cbf97a09684870e2d3fd1a4e79756e1c328173 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Tue, 12 Mar 2002 09:55:02 +0000 Subject: [PATCH] Avoid needless memory management error if EnumPrinters returns no printers. [originally from svn r1588] --- printing.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/printing.c b/printing.c index 9ba2d5d6..cd4baa9c 100644 --- a/printing.c +++ b/printing.c @@ -26,11 +26,16 @@ printer_enum *printer_start_enum(int *nprinters_ptr) buffer, 512, &needed, &nprinters) == 0) goto error; - buffer = srealloc(buffer, needed); + if (needed) { + buffer = srealloc(buffer, needed); - if (EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 5, - (LPBYTE)buffer, needed, &needed, &nprinters) == 0) - goto error; + if (EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 5, + (LPBYTE)buffer, needed, &needed, &nprinters) == 0) + goto error; + } else { + nprinters = 0; + ret->info = NULL; + } ret->info = (LPPRINTER_INFO_5)buffer; ret->nprinters = *nprinters_ptr = nprinters;