diff --git a/components/common/dlmalloc/malloc_wrapper.c b/components/common/dlmalloc/malloc_wrapper.c
new file mode 100644
index 0000000..f8afec2
--- /dev/null
+++ b/components/common/dlmalloc/malloc_wrapper.c
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021-2024, Arm Limited and Contributors. All rights reserved.
+ */
+
+#include "compiler.h"
+#include <errno.h>
+#include <stddef.h> /* dlmalloc requires size_t */
+#include <stdint.h>
+#include <string.h>
+
+/* Allocating heap area */
+#ifndef SP_HEAP_SIZE
+#error "SP_HEAP_SIZE is undefined, please define it in the build system"
+#endif
+
+static uint8_t sp_heap[SP_HEAP_SIZE] __aligned(16);
+static uint8_t *program_break = sp_heap;
+
+/**
+ * Basic sbrk implementation which increases the program break through the
+ * sp_heap buffer.
+ */
+void *sbrk(ptrdiff_t incr)
+{
+	uint8_t *previous_break = program_break;
+	uint8_t *new_break = program_break + incr;
+
+	if ((new_break < sp_heap) || (new_break > (sp_heap + sizeof(sp_heap))))
+		return (void *)(uintptr_t) -1;
+
+	program_break += incr;
+
+	return (void *) previous_break;
+}
+
+
+
+/*
+ * There's no way of including a custom configuration file without modifying
+ * malloc.c. As a workaround this file includes the missing stddef.h, sets the
+ * configuration values of dlmalloc and then includes malloc.c.
+ */
+
+/* dlmalloc configuration */
+#define USE_SPIN_LOCKS	0
+#define HAVE_MORECORE	1
+#define HAVE_MMAP	0
+#define HAVE_MREMAP	0
+#define MALLOC_FAILURE_ACTION	do {} while (0)
+#define MMAP_CLEARS	0
+#define MORECORE_CONTIGUOUS	1
+#define MORECORE_CANNOT_TRIM	1
+#define LACKS_SYS_PARAM_H	1
+#define LACKS_SYS_TYPES_H	1
+#define LACKS_TIME_H	1
+#define LACKS_UNISTD_H	1
+#define NO_MALLINFO	1
+#define NO_MALLOC_STATS	1
+#define DEFAULT_GRANULARITY 64
+
+#include "malloc.c"
