diff options
| author | Michał Górny <mgorny@gentoo.org> | 2022-01-10 03:03:46 +0000 |
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2022-01-22 19:46:06 +0000 |
| commit | 028a372fe2658ccf72ed481b9e942b28a59cb178 (patch) | |
| tree | 518ec10ae9b0bb21f56f898b69a21d966507d928 /sys/gdb | |
| parent | 6f6fbfa3a83578332f5605a97108ef28d6726c29 (diff) | |
Diffstat (limited to 'sys/gdb')
| -rw-r--r-- | sys/gdb/gdb_packet.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/sys/gdb/gdb_packet.c b/sys/gdb/gdb_packet.c index 9a85184eb49a..11ed5358848d 100644 --- a/sys/gdb/gdb_packet.c +++ b/sys/gdb/gdb_packet.c @@ -315,24 +315,16 @@ gdb_tx_end(void) runlen--; } } - if (runlen == 1) { + /* Don't emit '$', '#', '+', '-' or a run length below 3. */ + while (runlen == 1 || runlen == 2 || + runlen + 29 == '$' || runlen + 29 == '#' || + runlen + 29 == '+' || runlen + 29 == '-') { gdb_cur->gdb_putc(c); cksum += c; runlen--; } if (runlen == 0) continue; - /* Don't emit '$', '#', '+' or '-'. */ - if (runlen == 7) { - gdb_cur->gdb_putc(c); - cksum += c; - runlen--; - } - if (runlen == 6 || runlen == 14 || runlen == 16) { - gdb_cur->gdb_putc(c); - cksum += c; - runlen--; - } gdb_cur->gdb_putc('*'); cksum += '*'; gdb_cur->gdb_putc(runlen+29); |
