From b067a5e4e83556d11a68ea1837ce4698762c123d Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 3 Nov 2009 10:59:18 +0100 Subject: s3: Remove debug_ctx() smbd just crashed on me: In a debug message I called a routine preparing a string that itself used debug_ctx. The outer routine also used it after the inner routine had returned. It was still referencing the talloc context that the outer debug_ctx() had given us, which the inner DEBUG had already freed. --- source3/smbd/oplock_onefs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source3/smbd/oplock_onefs.c') diff --git a/source3/smbd/oplock_onefs.c b/source3/smbd/oplock_onefs.c index 4a9efe6929..c80925ced3 100644 --- a/source3/smbd/oplock_onefs.c +++ b/source3/smbd/oplock_onefs.c @@ -67,22 +67,22 @@ const char *onefs_cb_record_str_dbg(const struct onefs_callback_record *r) char *result; if (r == NULL) { - result = talloc_strdup(debug_ctx(), "NULL callback record"); + result = talloc_strdup(talloc_tos(), "NULL callback record"); return result; } switch (r->state) { case ONEFS_OPEN_FILE: - result = talloc_asprintf(debug_ctx(), "cb record %llu for " + result = talloc_asprintf(talloc_tos(), "cb record %llu for " "file %s", r->id, fsp_str_dbg(r->data.fsp)); case ONEFS_WAITING_FOR_OPLOCK: - result = talloc_asprintf(debug_ctx(), "cb record %llu for " + result = talloc_asprintf(talloc_tos(), "cb record %llu for " "pending mid %d", r->id, (int)r->data.mid); break; default: - result = talloc_asprintf(debug_ctx(), "cb record %llu unknown " + result = talloc_asprintf(talloc_tos(), "cb record %llu unknown " "state %d", r->id, r->state); break; } -- cgit