--- IO-AIO/AIO.xs 2012/05/28 17:00:19 1.214 +++ IO-AIO/AIO.xs 2012/06/17 17:07:25 1.215 @@ -1217,7 +1217,10 @@ { /* read: check type and grow scalar as necessary */ SvUPGRADE (data, SVt_PV); - svptr = SvGROW (data, len + dataoffset + 1); + if (SvLEN (data) >= SvCUR (data)) + svptr = SvGROW (data, len + dataoffset + 1); + else if (SvCUR (data) < len + dataoffset) + croak ("length + dataoffset outside of scalar, and cannot grow"); } {