Re: [PATCH] PR mi/15806: Fix quoting of async events

Tom Tromey
2014-05-16T18:24:15Z

Tom> Did you check the other callers of printchar, even indirect ones?
Tom> I did a spot check and didn't see any issues, but it would be reassuring
Tom> if you could look.

Simon> The only direct callers of printchar are fputstr_filtered,
Simon> fputstr_unfiltered, fputstrn_filtered and fputstrn_unfiltered. To the
Simon> best of my knowledge, the change should not impact the callers of
Simon> those.

Yeah, by "indirect ones" I meant callers of these as well.
I looked through them. fputstr_unfiltered is safe. fputstrn_filtered
is not used. But for fputstrn_unfiltered, I see in remote.c:

static char *
escape_buffer (const char *buf, int n)
[...]
fputstrn_unfiltered (buf, n, 0, stb);

So it seems like this change could impact remote.
To know for sure, you'd have to dig a bit deeper.

One option might be to make QUOTER==-1 special, then update the call in
mi_console_raw_packet.

Simon> Semi-related: while looking at that, I realized that unlike
Simon> mi_field_string, mi_field_fmt does no escaping at all. It doesn't seem
Simon> like a problem right now, since mi_field_fmt is only used with things
Simon> that don't really need escaping anyway (numbers, or hex
Simon> strings). Still, it makes an inconsistent API and would be nice to
Simon> fix, I think.

Yes, that seems like a bug waiting to happen.

Tom