Merge pull request #28717 from bfredl/rpcmsg

fix(ui): data corruption in remote_ui_raw_line
This commit is contained in:
bfredl 2024-05-12 19:22:45 +02:00 committed by GitHub
commit d8b395b10f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 27 additions and 1 deletions

View File

@ -778,7 +778,7 @@ void remote_ui_raw_line(RemoteUI *ui, Integer grid, Integer row, Integer startco
for (size_t i = 0; i < ncells; i++) { for (size_t i = 0; i < ncells; i++) {
repeat++; repeat++;
if (i == ncells - 1 || attrs[i] != attrs[i + 1] || chunk[i] != chunk[i + 1]) { if (i == ncells - 1 || attrs[i] != attrs[i + 1] || chunk[i] != chunk[i + 1]) {
if (UI_BUF_SIZE - BUF_POS(ui) < 2 * (1 + 2 + sizeof(schar_T) + 5 + 5) + 1 if (UI_BUF_SIZE - BUF_POS(ui) < 2 * (1 + 2 + MAX_SCHAR_SIZE + 5 + 5) + 1
|| ui->ncells_pending >= 500) { || ui->ncells_pending >= 500) {
// close to overflowing the redraw buffer. finish this event, // close to overflowing the redraw buffer. finish this event,
// flush, and start a new "grid_line" event at the current position. // flush, and start a new "grid_line" event at the current position.

File diff suppressed because one or more lines are too long