diff options
Diffstat (limited to 'source3/printing/nt_printing_tdb.c')
-rw-r--r-- | source3/printing/nt_printing_tdb.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/source3/printing/nt_printing_tdb.c b/source3/printing/nt_printing_tdb.c index 98ac46797f..028dc0b1da 100644 --- a/source3/printing/nt_printing_tdb.c +++ b/source3/printing/nt_printing_tdb.c @@ -26,6 +26,7 @@ #include "librpc/gen_ndr/spoolss.h" #include "librpc/gen_ndr/ndr_security.h" #include "libcli/security/security.h" +#include "util_tdb.h" #define FORMS_PREFIX "FORMS/" #define DRIVERS_PREFIX "DRIVERS/" @@ -87,25 +88,25 @@ static TDB_DATA make_printers_secdesc_tdbkey(TALLOC_CTX *ctx, static bool upgrade_to_version_3(void) { - TDB_DATA kbuf, newkey, dbuf; + TDB_DATA kbuf, dbuf; DEBUG(0,("upgrade_to_version_3: upgrading print tdb's to version 3\n")); - for (kbuf = tdb_firstkey(tdb_drivers); kbuf.dptr; - newkey = tdb_nextkey(tdb_drivers, kbuf), free(kbuf.dptr), kbuf=newkey) { + for (kbuf = tdb_firstkey_compat(tdb_drivers); kbuf.dptr; + kbuf = tdb_nextkey_compat(tdb_drivers, kbuf)) { - dbuf = tdb_fetch(tdb_drivers, kbuf); + dbuf = tdb_fetch_compat(tdb_drivers, kbuf); if (strncmp((const char *)kbuf.dptr, FORMS_PREFIX, strlen(FORMS_PREFIX)) == 0) { DEBUG(0,("upgrade_to_version_3:moving form\n")); if (tdb_store(tdb_forms, kbuf, dbuf, TDB_REPLACE) != 0) { SAFE_FREE(dbuf.dptr); - DEBUG(0,("upgrade_to_version_3: failed to move form. Error (%s).\n", tdb_errorstr(tdb_forms))); + DEBUG(0,("upgrade_to_version_3: failed to move form. Error (%s).\n", tdb_errorstr_compat(tdb_forms))); return False; } if (tdb_delete(tdb_drivers, kbuf) != 0) { SAFE_FREE(dbuf.dptr); - DEBUG(0,("upgrade_to_version_3: failed to delete form. Error (%s)\n", tdb_errorstr(tdb_drivers))); + DEBUG(0,("upgrade_to_version_3: failed to delete form. Error (%s)\n", tdb_errorstr_compat(tdb_drivers))); return False; } } @@ -114,12 +115,12 @@ static bool upgrade_to_version_3(void) DEBUG(0,("upgrade_to_version_3:moving printer\n")); if (tdb_store(tdb_printers, kbuf, dbuf, TDB_REPLACE) != 0) { SAFE_FREE(dbuf.dptr); - DEBUG(0,("upgrade_to_version_3: failed to move printer. Error (%s)\n", tdb_errorstr(tdb_printers))); + DEBUG(0,("upgrade_to_version_3: failed to move printer. Error (%s)\n", tdb_errorstr_compat(tdb_printers))); return False; } if (tdb_delete(tdb_drivers, kbuf) != 0) { SAFE_FREE(dbuf.dptr); - DEBUG(0,("upgrade_to_version_3: failed to delete printer. Error (%s)\n", tdb_errorstr(tdb_drivers))); + DEBUG(0,("upgrade_to_version_3: failed to delete printer. Error (%s)\n", tdb_errorstr_compat(tdb_drivers))); return False; } } @@ -128,12 +129,12 @@ static bool upgrade_to_version_3(void) DEBUG(0,("upgrade_to_version_3:moving secdesc\n")); if (tdb_store(tdb_printers, kbuf, dbuf, TDB_REPLACE) != 0) { SAFE_FREE(dbuf.dptr); - DEBUG(0,("upgrade_to_version_3: failed to move secdesc. Error (%s)\n", tdb_errorstr(tdb_printers))); + DEBUG(0,("upgrade_to_version_3: failed to move secdesc. Error (%s)\n", tdb_errorstr_compat(tdb_printers))); return False; } if (tdb_delete(tdb_drivers, kbuf) != 0) { SAFE_FREE(dbuf.dptr); - DEBUG(0,("upgrade_to_version_3: failed to delete secdesc. Error (%s)\n", tdb_errorstr(tdb_drivers))); + DEBUG(0,("upgrade_to_version_3: failed to delete secdesc. Error (%s)\n", tdb_errorstr_compat(tdb_drivers))); return False; } } @@ -161,7 +162,6 @@ static int sec_desc_upg_fn( TDB_CONTEXT *the_tdb, TDB_DATA key, struct security_descriptor *sec, *new_sec; TALLOC_CTX *ctx = state; int result, i; - uint32 sd_size; size_t size_new_sec; if (!data.dptr || data.dsize == 0) { @@ -235,9 +235,6 @@ static int sec_desc_upg_fn( TDB_CONTEXT *the_tdb, TDB_DATA key, /* store it back */ - sd_size = ndr_size_security_descriptor(sd_store->sd, 0) - + sizeof(struct sec_desc_buf); - status = marshall_sec_desc_buf(ctx, sd_store, &data.dptr, &data.dsize); if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("sec_desc_upg_fn: Failed to parse new sec_desc for %s\n", key.dptr )); @@ -248,7 +245,7 @@ static int sec_desc_upg_fn( TDB_CONTEXT *the_tdb, TDB_DATA key, /* 0 to continue and non-zero to stop traversal */ - return (result == -1); + return (result != 0); } /******************************************************************* @@ -269,7 +266,7 @@ static bool upgrade_to_version_4(void) talloc_destroy( ctx ); - return ( result != -1 ); + return ( result >= 0 ); } /******************************************************************* @@ -337,7 +334,7 @@ static bool upgrade_to_version_5(void) talloc_destroy( ctx ); - return ( result != -1 ); + return ( result >= 0 ); } bool nt_printing_tdb_upgrade(void) |