From: Joseph Sutton Date: Wed, 2 Aug 2023 03:31:29 +0000 (+1200) Subject: ldb:ldb_sqlite3: Access correct member of union X-Git-Tag: tevent-0.16.0~1035 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=578c1d39f5eefd75df00ad087a3a231e9b99f448;p=thirdparty%2Fsamba.git ldb:ldb_sqlite3: Access correct member of union Accessing the wrong member of a union invokes undefined behaviour. Signed-off-by: Joseph Sutton Reviewed-by: Andrew Bartlett --- diff --git a/lib/ldb/ldb_sqlite3/ldb_sqlite3.c b/lib/ldb/ldb_sqlite3/ldb_sqlite3.c index 110fe2a98d4..26c7023be17 100644 --- a/lib/ldb/ldb_sqlite3/ldb_sqlite3.c +++ b/lib/ldb/ldb_sqlite3/ldb_sqlite3.c @@ -380,12 +380,12 @@ static char *parsetree_to_sql(struct ldb_module *module, value.data); case LDB_OP_GREATER: - attr = ldb_attr_casefold(mem_ctx, t->u.equality.attr); + attr = ldb_attr_casefold(mem_ctx, t->u.comparison.attr); if (attr == NULL) return NULL; a = ldb_schema_attribute_by_name(ldb, attr); /* Get a canonicalised copy of the data */ - a->syntax->canonicalise_fn(ldb, mem_ctx, &(t->u.equality.value), &value); + a->syntax->canonicalise_fn(ldb, mem_ctx, &(t->u.comparison.value), &value); if (value.data == NULL) { return NULL; } @@ -399,12 +399,12 @@ static char *parsetree_to_sql(struct ldb_module *module, attr); case LDB_OP_LESS: - attr = ldb_attr_casefold(mem_ctx, t->u.equality.attr); + attr = ldb_attr_casefold(mem_ctx, t->u.comparison.attr); if (attr == NULL) return NULL; a = ldb_schema_attribute_by_name(ldb, attr); /* Get a canonicalised copy of the data */ - a->syntax->canonicalise_fn(ldb, mem_ctx, &(t->u.equality.value), &value); + a->syntax->canonicalise_fn(ldb, mem_ctx, &(t->u.comparison.value), &value); if (value.data == NULL) { return NULL; } @@ -431,12 +431,12 @@ static char *parsetree_to_sql(struct ldb_module *module, attr); case LDB_OP_APPROX: - attr = ldb_attr_casefold(mem_ctx, t->u.equality.attr); + attr = ldb_attr_casefold(mem_ctx, t->u.comparison.attr); if (attr == NULL) return NULL; a = ldb_schema_attribute_by_name(ldb, attr); /* Get a canonicalised copy of the data */ - a->syntax->canonicalise_fn(ldb, mem_ctx, &(t->u.equality.value), &value); + a->syntax->canonicalise_fn(ldb, mem_ctx, &(t->u.comparison.value), &value); if (value.data == NULL) { return NULL; }