diff --git a/src/builtins/slash.c b/src/builtins/slash.c index f719e1c6..ddc6200a 100644 --- a/src/builtins/slash.c +++ b/src/builtins/slash.c @@ -743,7 +743,8 @@ B slash_c2(B t, B w, B x) { goto decX_ret; } if (xlen == 0) return x; - usz s = xlen * wv; + usz s = xlen; + if (mulOn(s, wv)) thrOOM(); if (xl>6 || (xl<3 && xl!=0) || TI(x,elType)==el_B) { B xf = getFillR(x); if (xr!=1) { diff --git a/test/cases/usz32.bqn b/test/cases/usz32.bqn new file mode 100644 index 00000000..28ee9862 --- /dev/null +++ b/test/cases/usz32.bqn @@ -0,0 +1,3 @@ +!"Out of memory" % a←(2⋆20) ⥊ 1e9 ⋄ {𝕊: a}˘ a +!"⥊: 𝕨 too large" % a←(2⋆20) ⥊ 1e9 ⋄ a˘ a +!"Out of memory" % (2⋆25)/(2⋆10)⥊10