Don't walk past the end of ldb values.
[tprouty/samba.git] / source / dsdb / samdb / ldb_modules / normalise.c
index a0eff43534d63b1a8a301f5e350f882c4c459b88..3306fd3c33b9f8cba6b1bd76d674465c3160d83c 100644 (file)
@@ -112,12 +112,12 @@ static int normalise_search_callback(struct ldb_context *ldb, void *context, str
                }
                for (j = 0; j < ares->message->elements[i].num_values; j++) {
                        const char *dn_str;
-                       struct ldb_dn *dn = ldb_dn_new(mem_ctx, ldb, (const char *)ares->message->elements[i].values[j].data);
+                       struct ldb_dn *dn = ldb_dn_from_ldb_val(mem_ctx, ldb, &ares->message->elements[i].values[j]);
                        if (!dn) {
                                talloc_free(mem_ctx);
                                return LDB_ERR_OPERATIONS_ERROR;
                        }
-                       ret = fix_dn(ares->message->dn);
+                       ret = fix_dn(dn);
                        if (ret != LDB_SUCCESS) {
                                talloc_free(mem_ctx);
                                return ret;