From 6111dc4e71ffd843ac8029df4fd67d32689f8e36 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 21 Jan 2014 06:12:54 -0800 Subject: liblink: check for symgrow size too large Many calls to symgrow pass a vlong value. Change the function to not implicitly truncate, and to instead give an error if the value is too large. R=golang-codereviews, gobot, rsc CC=golang-codereviews https://golang.org/cl/54010043 --- src/liblink/data.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/liblink/data.c') diff --git a/src/liblink/data.c b/src/liblink/data.c index 9a481b6e5e..58d6d6b5e8 100644 --- a/src/liblink/data.c +++ b/src/liblink/data.c @@ -41,10 +41,16 @@ mangle(char *file) } void -symgrow(Link *ctxt, LSym *s, int32 siz) +symgrow(Link *ctxt, LSym *s, vlong lsiz) { + int32 siz; + USED(ctxt); + siz = (int32)lsiz; + if((vlong)siz != lsiz) + sysfatal("symgrow size %lld too long", lsiz); + if(s->np >= siz) return; -- cgit v1.3-5-g9baa