diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c
index 4daba343509917e10cd2205e8ddcf299c9dda458..f2264a2db30bbffeff3ed58c9fbb66cc71d37ed0 100644
--- a/dlls/usp10/usp10.c
+++ b/dlls/usp10/usp10.c
@@ -3755,8 +3755,7 @@ HRESULT WINAPI ScriptLayout(int runs, const BYTE *level, int *vistolog, int *log
     if (!level || (!vistolog && !logtovis))
         return E_INVALIDARG;
 
-    indexs = heap_alloc(sizeof(int) * runs);
-    if (!indexs)
+    if (!(indexs = heap_calloc(runs, sizeof(*indexs))))
         return E_OUTOFMEMORY;
 
     if (vistolog)