From a06644dfe4f680d6b14f7e654aad4982ea10a6cc Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 27 Mar 2009 14:52:21 -0400 Subject: Fix potential segfault if dp_ctx is still NULL. May happen at startup if, for some reason dp is very slow to start and we receive a request before a reconnection is rescheduled in the responder dp reconnection code. This shouldn't happen normally so make it clear with a debug statement. --- server/responder/nss/nsssrv_dp.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'server/responder/nss/nsssrv_dp.c') diff --git a/server/responder/nss/nsssrv_dp.c b/server/responder/nss/nsssrv_dp.c index 0668a5b5..b2e15df3 100644 --- a/server/responder/nss/nsssrv_dp.c +++ b/server/responder/nss/nsssrv_dp.c @@ -142,6 +142,15 @@ int nss_dp_send_acct_req(struct resp_ctx *rctx, TALLOC_CTX *memctx, return ENOMEM; } + /* double check dp_ctx has actually been initialized. + * in some pathological cases it may happen that nss starts up before + * dp connection code is actually able to establish a connection. + */ + if (!rctx->dp_ctx) { + DEBUG(1, ("The Data Provider connection is not available yet!" + " This maybe a bug, it shouldn't happen!\n")); + return EIO; + } conn = sbus_get_connection(rctx->dp_ctx->scon_ctx); /* create the message */ -- cgit