diff --git a/com.oracle.truffle.r.native/fficall/src/truffle_nfi/Memory.c b/com.oracle.truffle.r.native/fficall/src/truffle_nfi/Memory.c
index c7ec3ecf80ce11bbaddfb106c4614eeb77d51356..badee4cb2e82925207eed9ebc86cea58f943c0da 100644
--- a/com.oracle.truffle.r.native/fficall/src/truffle_nfi/Memory.c
+++ b/com.oracle.truffle.r.native/fficall/src/truffle_nfi/Memory.c
@@ -33,7 +33,7 @@ char *R_alloc(size_t n, int size) {
 // This is S compatible version of R_alloc
 char *S_alloc(long n, int size) {
     char *p = R_alloc(n, size);
-    memset(p, 0, n);
+    memset(p, 0, n * size);
     return p;
 }