While the for-loop condition does contain a bounds check, the pointer is independently increment in the for-loop body. This increment therefore requires a separate bounds check. Otherwise, the parsing loop may access data outside the given buffer boundaries.