GetValue of DataView doesn't guarantee target in range

# Yusuke Suzuki (13 years ago)

Hello all,

According to rev13 draft section 15.13.7.4 step 4,

  1. If totalOffset ≥ byteLength, throw a RangeError exception.

But this doesn't guarantee target in range of buffer. For example,

var view = new DataView(new ArrayBuffer(1));
view.getUint32(0);

In above example, calling GetValue(0, false, Uint32), and then totalOffset is 0 and byteLength is 1, so a RangeError exception isn't thrown. But because Uint32 requires 4 bytes, this access is out of range.

I think we should check (totalOffset + ElementSize) > byteLength, right?

# Allen Wirfs-Brock (13 years ago)

The DavaView section is still a early and very rough draft that is due for a total rewrite. I've made a node that this specific formula needs to be fixed.

# Yusuke Suzuki (13 years ago)

Ah, sorry. I thought it is an issue of ArrayBuffer.