OSDN Git Service

runtime: Better detection of memory allocation request overflow.
[pf3gnuchains/gcc-fork.git] / libgo / runtime / go-append.c
index 3a0c778..dac4c90 100644 (file)
@@ -54,6 +54,9 @@ __go_append (struct __go_open_array a, void *bvalues, uintptr_t bcount,
          while (m < count);
        }
 
+      if ((uintptr) m > MaxMem / element_size)
+       runtime_panicstring ("growslice: cap out of range");
+
       n = __go_alloc (m * element_size);
       __builtin_memcpy (n, a.__values, a.__count * element_size);