From 0998d172dbeb5f9d7198bbea9ee9124c0558f41b Mon Sep 17 00:00:00 2001 From: Tim Prouty Date: Fri, 23 Jan 2009 16:09:13 -0800 Subject: s3 ldb: Fix vasprintf segfault that has been the source of build machine failures this week The bug was introduced when converting samba3's ldb_search interface to match samba4: 47951fc5d0085e124666b7667715bba98076820e f3ecb701335b1129947127d4c45eef970b66875c --- source3/lib/ldb/common/ldb.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'source3') diff --git a/source3/lib/ldb/common/ldb.c b/source3/lib/ldb/common/ldb.c index 6e28528dbf..cef7373c26 100644 --- a/source3/lib/ldb/common/ldb.c +++ b/source3/lib/ldb/common/ldb.c @@ -808,15 +808,18 @@ int ldb_search(struct ldb_context *ldb, TALLOC_CTX *mem_ctx, struct ldb_result * va_list ap; int ret; + expression = NULL; res = NULL; *result = NULL; - va_start(ap, exp_fmt); - expression = talloc_vasprintf(mem_ctx, exp_fmt, ap); - va_end(ap); + if (exp_fmt) { + va_start(ap, exp_fmt); + expression = talloc_vasprintf(mem_ctx, exp_fmt, ap); + va_end(ap); - if ( ! expression) { - return LDB_ERR_OPERATIONS_ERROR; + if ( ! expression) { + return LDB_ERR_OPERATIONS_ERROR; + } } ret = _ldb_search(ldb, ldb, &res, base, scope, attrs, expression); -- cgit