yuanyuanxiang
c844ba7614
Fix: Client misparses screen-control batches when record count is a multiple of 7
...
ProcessCommand chose the MSG record size by testing "ulLength % 28 == 0"
before "% 48 == 0". The two sizes' least common multiple is 336 (7*48 =
12*28), so a 48-byte batch whose record count is a multiple of 7 was
misclassified as 28-byte MSG32 records, shifting every field and garbling
(or silently dropping) injected input.
Check "% 48 == 0" first. The modern controller always emits 48-byte MSG64;
the 28-byte MSG32 path is legacy 32-bit-controller compatibility and is only
reached when 48 does not divide evenly. This is the first feature (MCP
remote_keyboard "type", and the upcoming remote_mouse drag) to emit
multi-record batches, which is what made the latent bug reachable.
Co-Authored-By: deepseek-v4-pro
2026-08-25 13:21:54 +02:00
..
2026-04-19 22:55:21 +02:00
2026-06-05 00:05:13 +02:00
2026-04-19 22:55:21 +02:00
2026-08-15 11:09:14 +02:00
2026-08-15 11:09:14 +02:00
2026-08-21 19:50:11 +02:00
2026-04-19 22:55:21 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-06 13:02:29 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-30 00:12:38 +02:00
2026-05-30 00:12:38 +02:00
2026-06-15 19:14:49 +02:00
2026-05-30 00:12:38 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-08-15 11:09:14 +02:00
2026-06-29 22:49:30 +02:00
2026-04-19 22:55:21 +02:00
2026-08-15 11:09:14 +02:00
2026-04-19 22:55:21 +02:00
2026-07-13 19:02:25 +02:00
2026-07-13 19:02:25 +02:00
2026-04-19 22:55:21 +02:00
2026-07-13 19:02:25 +02:00
2026-07-13 19:02:25 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-05-09 23:13:24 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-30 00:12:38 +02:00
2026-05-30 00:12:38 +02:00
2026-04-19 22:55:21 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-08-15 11:09:14 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-24 22:31:14 +02:00
2026-06-20 12:38:28 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-24 22:31:14 +02:00
2026-04-19 22:55:21 +02:00
2026-08-15 11:09:14 +02:00
2026-08-15 11:09:14 +02:00
2026-07-14 22:32:29 +02:00
2026-06-05 00:05:13 +02:00
2026-05-06 19:29:02 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-06 14:54:42 +02:00
2026-06-06 14:54:42 +02:00
2026-08-21 19:50:11 +02:00
2026-08-21 19:50:11 +02:00
2026-06-05 00:05:13 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-11 20:22:07 +02:00
2026-06-29 22:49:30 +02:00
2026-06-29 22:49:30 +02:00
2026-08-23 10:37:55 +02:00
2026-06-05 00:05:13 +02:00
2026-08-23 10:37:55 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-15 19:15:31 +02:00
2026-06-14 00:24:46 +02:00
2026-08-25 13:21:54 +02:00
2026-06-15 19:15:31 +02:00
2026-05-07 18:17:28 +02:00
2026-05-07 18:17:28 +02:00
2026-06-16 21:03:45 +02:00
2026-06-16 21:03:45 +02:00
2026-08-03 18:30:40 +02:00
2026-04-19 22:55:21 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-29 22:49:30 +02:00
2026-06-29 22:49:30 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-08-21 19:50:11 +02:00
2026-06-05 00:05:13 +02:00
2026-05-08 12:39:59 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-29 22:49:30 +02:00
2026-06-29 22:49:30 +02:00
2026-04-19 22:55:21 +02:00
2026-08-03 18:30:40 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-30 00:12:38 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-15 14:11:42 +02:00
2026-05-30 00:12:38 +02:00