Add input bounds checking