diff --git a/source3/include/g_lock.h b/source3/include/g_lock.h index a0d8c251dfd..c3e3a509b80 100644 --- a/source3/include/g_lock.h +++ b/source3/include/g_lock.h @@ -56,7 +56,7 @@ NTSTATUS g_lock_do(TDB_DATA key, enum g_lock_type lock_type, void (*fn)(void *private_data), void *private_data); int g_lock_locks(struct g_lock_ctx *ctx, - int (*fn)(const char *name, void *private_data), + int (*fn)(TDB_DATA key, void *private_data), void *private_data); NTSTATUS g_lock_dump(struct g_lock_ctx *ctx, TDB_DATA key, void (*fn)(const struct g_lock_rec *locks, diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c index 3988cec2e3c..9ce0e062275 100644 --- a/source3/lib/g_lock.c +++ b/source3/lib/g_lock.c @@ -625,7 +625,7 @@ NTSTATUS g_lock_write_data(struct g_lock_ctx *ctx, TDB_DATA key, } struct g_lock_locks_state { - int (*fn)(const char *name, void *private_data); + int (*fn)(TDB_DATA key, void *private_data); void *private_data; }; @@ -635,15 +635,11 @@ static int g_lock_locks_fn(struct db_record *rec, void *priv) struct g_lock_locks_state *state = (struct g_lock_locks_state *)priv; key = dbwrap_record_get_key(rec); - if ((key.dsize == 0) || (key.dptr[key.dsize-1] != 0)) { - DEBUG(1, ("invalid key in g_lock.tdb, ignoring\n")); - return 0; - } - return state->fn((char *)key.dptr, state->private_data); + return state->fn(key, state->private_data); } int g_lock_locks(struct g_lock_ctx *ctx, - int (*fn)(const char *name, void *private_data), + int (*fn)(TDB_DATA key, void *private_data), void *private_data) { struct g_lock_locks_state state; diff --git a/source3/utils/net_g_lock.c b/source3/utils/net_g_lock.c index 2daa0206113..8b839d2e09f 100644 --- a/source3/utils/net_g_lock.c +++ b/source3/utils/net_g_lock.c @@ -154,9 +154,13 @@ done: return ret; } -static int net_g_lock_locks_fn(const char *name, void *private_data) +static int net_g_lock_locks_fn(TDB_DATA key, void *private_data) { - d_printf("%s\n", name); + if ((key.dsize == 0) || (key.dptr[key.dsize-1] != 0)) { + DEBUG(1, ("invalid key in g_lock.tdb, ignoring\n")); + return 0; + } + d_printf("%s\n", (const char *)key.dptr); return 0; }