[Samba] del_driver_init deletes what?

Alex Korobkin korobkin+smb at gmail.com
Thu Jan 10 13:25:37 MST 2013


Hi team,

I'm trying to debug cupsaddsmb with 3.5.20, which sometimes throws "Unable
to install Windows 2000 printer driver files" error for me.

I traced it all down to  _spoolss_AddPrinterDriver(), which calls
del_driver_init function from printing/nt_printing.c file.
It seems that del_driver_init() is called to delete some key from
ntdrivers.tdb, and the key in question seems to be
"DRIVER_INIT/my_printer_name".

These lines made me think this is what it does:
===
if (asprintf(&key, "%s%s", DRIVER_INIT_PREFIX, drivername) < 0) {
return false;
}
<snip>

ret = (tdb_delete_bystring(tdb_drivers, key) == 0);
<snip>
return ret;
===

However, I dumped all the keys of ntdrivers.tdb and there is no single key
with a name like DRIVER_INIT/.

Am I incorrect about this function internals?
What does del_driver_init trying to delete and why would it fail?

Thanks in advance.
-Alex


More information about the samba mailing list