diff --git a/bindings/c/test/mako/utils.c b/bindings/c/test/mako/utils.c
index 0aef4b36dc..f238fcd6f7 100644
--- a/bindings/c/test/mako/utils.c
+++ b/bindings/c/test/mako/utils.c
@@ -73,12 +73,11 @@ int digits(int num) {
 void genkey(char* str, char* prefix, int prefixlen, int prefixpadding, int num, int rows, int len) {
         const int rowdigit = digits(rows);
         const int prefixoffset = prefixpadding ? len - (prefixlen + rowdigit) - 1 : 0;
-        char* prefixstr = (char*)malloc(sizeof(char) * (prefixlen + rowdigit + 1));
+        char* prefixstr = (char*)alloca(sizeof(char) * (prefixlen + rowdigit + 1));
         snprintf(prefixstr, prefixlen + rowdigit + 1, "%s%0.*d", prefix, rowdigit, num);
         memset(str, 'x', len);
         memcpy(str + prefixoffset, prefixstr, prefixlen + rowdigit);
         str[len - 1] = '\0';
-        free(prefixstr);
 }
 
 /* This is another sorting algorithm used to calculate latency parameters */