From: Tim Prouty Date: Sat, 24 Jan 2009 00:09:13 +0000 (-0800) Subject: s3 ldb: Fix vasprintf segfault that has been the source of build machine failures... X-Git-Tag: samba-4.0.0alpha7~422^2~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0998d172dbeb5f9d7198bbea9ee9124c0558f41b;p=thirdparty%2Fsamba.git 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 --- diff --git a/source3/lib/ldb/common/ldb.c b/source3/lib/ldb/common/ldb.c index 6e28528dbf3..cef7373c267 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);