Commit 782464ae authored by Rémy Oudompheng's avatar Rémy Oudompheng

runtime: fix a panic when growing zero-width-element slices.

Fixes #4197.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6611056
parent 4cc7bf32
......@@ -114,7 +114,7 @@ runtime·growslice(SliceType *t, Slice old, int64 n, Slice ret)
cap = old.cap + n;
if((intgo)cap != cap || cap < old.cap || cap > MaxMem / t->elem->size)
if((intgo)cap != cap || cap < old.cap || (t->elem->size > 0 && cap > MaxMem/t->elem->size))
runtime·panicstring("growslice: cap out of range");
growslice1(t, old, cap, &ret);
......
// run
// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Issue 4197: growing a slice of zero-width elements
// panics on a division by zero.
package main
func main() {
var x []struct{}
x = append(x, struct{}{})
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment