fixed a couple of bugs in the driver return code
authorAndrew Tridgell <tridge@samba.org>
Sun, 28 May 2000 22:50:30 +0000 (22:50 +0000)
committerAndrew Tridgell <tridge@samba.org>
Sun, 28 May 2000 22:50:30 +0000 (22:50 +0000)
source/printing/nt_printing.c

index 57c65e5eca662da0d2dfb223e552dadb7e0afda0..54212f6c211deebb6e2f302f98897166c8500716 100644 (file)
@@ -414,6 +414,13 @@ static uint32 get_a_printer_driver_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 **info_ptr,
        fstrcpy(driver.dependentfiles[i], "");
 
        free(dbuf.dptr);
+
+       if (len != dbuf.dsize) {
+               return 1;
+       }
+
+       *info_ptr = (NT_PRINTER_DRIVER_INFO_LEVEL_3 *)memdup(&driver, sizeof(driver));
+
        return 0;
 }
 
@@ -447,7 +454,8 @@ static uint32 dump_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL driver, uint32
                                DEBUGADD(106,("monitorname:[%s]\n",     info3->monitorname));
                                DEBUGADD(106,("defaultdatatype:[%s]\n", info3->defaultdatatype));
                                
-                               for (i=0; *info3->dependentfiles[i]; i++) {
+                               for (i=0; info3->dependentfiles &&
+                                         *info3->dependentfiles[i]; i++) {
                                        DEBUGADD(106,("dependentfile:[%s]\n", 
                                                      info3->dependentfiles[i]));
                                }