app: [Android] avoid out-of-bounds access in getCursorCapsMode

Fixes: https://todo.sr.ht/~eliasnaur/gio/404
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2022-04-24 10:50:10 +02:00
parent 8630fee623
commit 6ede60d84e
+5 -1
View File
@@ -555,7 +555,11 @@ public final class GioView extends SurfaceView implements Choreographer.FrameCal
@Override public int getCursorCapsMode(int reqModes) {
Snippet snip = getSnippet();
int selStart = imeSelectionStart(nhandle);
return TextUtils.getCapsMode(snip.snippet, imeToUTF16(nhandle, selStart - snip.offset), reqModes);
int off = imeToUTF16(nhandle, selStart - snip.offset);
if (off < 0 || off > snip.snippet.length()) {
return 0;
}
return TextUtils.getCapsMode(snip.snippet, off, reqModes);
}
@Override public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) {