sideband: report unhandled incomplete sideband messages as bugs

It was pretty tricky to verify that incomplete sideband messages are handled correctly by the `recv_sideband()`/`demultiplex_sideband()` code: they have to be flushed out at the end of the loop in `recv_sideband()`, but the actual flushing is done by the `demultiplex_sideband()` function (which therefore has to know somehow that the loop will be done after it returns). To catch future bugs where incomplete sideband messages might not be shown by mistake, let's catch that condition and report a bug. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Oct 19, 2020 at 19:35 UTC 8e86cf6581655624e1f3284126c5ea664685eb44
1 file changed +3
pkt-line.c
+3
@@ -471,6 +471,9 @@ int recv_sideband(const char *me, int in_stream, int out)
471 write_or_die(out, buf + 1, len - 1);
472 break;
473 default: /* errors: message already written */
474 + if (scratch.len > 0)
475 + BUG("unhandled incomplete sideband: '%s'",
476 + scratch.buf);
477 return sideband_type;
478 }
479 }