diff options
Diffstat (limited to 'source3/printing/nt_printing.c')
-rw-r--r-- | source3/printing/nt_printing.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index de3b9ed6c5..82facbe453 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -1276,18 +1276,35 @@ uint32 get_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL *driver, uint32 level, uint32 free_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL driver, uint32 level) { uint32 success; - NT_PRINTER_DRIVER_INFO_LEVEL_3 *info3; switch (level) { case 3: { + NT_PRINTER_DRIVER_INFO_LEVEL_3 *info3; if (driver.info_3 != NULL) { info3=driver.info_3; safe_free(info3->dependentfiles); - safe_free(info3); ZERO_STRUCTP(info3); + safe_free(info3); + success=0; + } + else + { + success=4; + } + break; + } + case 6: + { + NT_PRINTER_DRIVER_INFO_LEVEL_3 *info6; + if (driver.info_6 != NULL) + { + info6=driver.info_6; + safe_free(info6->dependentfiles); + ZERO_STRUCTP(info6); + safe_free(info6); success=0; } else |