File: src/main/java/org/flossware/curses/api/ScrollPane.java
Lines: 137-152
Issue:
Viewport clipping logic lacks comprehensive bounds validation:
for (int y = 0; y < viewportHeight; y++) {
for (int x = 0; x < viewportWidth; x++) {
int contentY = viewportY + y;
int contentX = viewportX + x;
// ... buffer access ...
}
}
Trigger Scenario:
- contentY or contentX exceed content buffer dimensions
- Content buffer smaller than viewport
- Result: ArrayIndexOutOfBoundsException when accessing content buffer
Fix:
Add comprehensive bounds validation:
for (int y = 0; y < viewportHeight; y++) {
for (int x = 0; x < viewportWidth; x++) {
int contentY = viewportY + y;
int contentX = viewportX + x;
if (contentY >= 0 && contentY < contentBuffer.length &&
contentX >= 0 && contentX < contentBuffer[contentY].length) {
// Safe buffer access
}
}
}
File: src/main/java/org/flossware/curses/api/ScrollPane.java
Lines: 137-152
Issue:
Viewport clipping logic lacks comprehensive bounds validation:
Trigger Scenario:
Fix:
Add comprehensive bounds validation: