diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/library.js | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/src/library.js b/src/library.js index ed7bfa4d..17018f5d 100644 --- a/src/library.js +++ b/src/library.js @@ -1776,6 +1776,8 @@ LibraryManager.library = {      } else if (nbyte < 0 || offset < 0) {        ___setErrNo(ERRNO_CODES.EINVAL);        return -1; +    } else if (offset >= stream.object.contents.length) { +      return 0;      } else {        var bytesRead = 0;        while (stream.ungotten.length && nbyte > 0) { @@ -1785,6 +1787,8 @@ LibraryManager.library = {        }        var contents = stream.object.contents;        var size = Math.min(contents.length - offset, nbyte); +      assert(size >= 0); +        #if USE_TYPED_ARRAYS == 2        if (contents.subarray) { // typed array          HEAPU8.set(contents.subarray(offset, offset+size), buf); @@ -1852,6 +1856,7 @@ LibraryManager.library = {        } else {          var ungotSize = stream.ungotten.length;          bytesRead = _pread(fildes, buf, nbyte, stream.position); +        assert(bytesRead >= -1);          if (bytesRead != -1) {            stream.position += (stream.ungotten.length - ungotSize) + bytesRead;          } | 
