diff options
Diffstat (limited to 'src/cmd/internal/obj')
| -rw-r--r-- | src/cmd/internal/obj/wasm/wasmobj.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/internal/obj/wasm/wasmobj.go b/src/cmd/internal/obj/wasm/wasmobj.go index 2b7e12a93f..ca09b3fa0b 100644 --- a/src/cmd/internal/obj/wasm/wasmobj.go +++ b/src/cmd/internal/obj/wasm/wasmobj.go @@ -870,6 +870,9 @@ func assemble(ctxt *obj.Link, s *obj.LSym, newprog obj.ProgAlloc) { if p.From.Type != obj.TYPE_CONST { panic("bad type for *Load") } + if p.From.Offset > math.MaxUint32 { + ctxt.Diag("bad offset in %v", p) + } writeUleb128(w, align(p.As)) writeUleb128(w, uint64(p.From.Offset)) @@ -877,6 +880,9 @@ func assemble(ctxt *obj.Link, s *obj.LSym, newprog obj.ProgAlloc) { if p.To.Offset < 0 { panic("negative offset") } + if p.From.Offset > math.MaxUint32 { + ctxt.Diag("bad offset in %v", p) + } writeUleb128(w, align(p.As)) writeUleb128(w, uint64(p.To.Offset)) |
