From: Erik Faye-Lund Date: Mon, 11 Oct 2010 15:28:16 GMT Subject: Re: [msysGit] [PATCH v3 02/14] mingw: implement syslog Message-ID: In-Reply-To: <4CB24A43.9090501@gmail.com> On Mon, Oct 11, 2010 at 1:20 AM, Eric Sunshine wrote: > On 10/10/2010 6:16 PM, Erik Faye-Lund wrote: >> >> On Sun, Oct 10, 2010 at 11:28 PM, Eric Sunshine >>  wrote: >>> (On the other hand, for the '%s' check above, the code does report a >>> warning >>> and then exits, so it is not inconceivable that a '%n' could also emit a >>> warning.) >> >> I guess I could add something like this: >> >> if (strstr(arg, "%1")) >>        warning("arg contains %1, message might be corrupted"); >> >> I don't want to return in that case, because I think some output is >> better than no output, and it seems to work on Vista. > > Rather than emitting a warning, it might be reasonable to perform a simple > transformation on the string if it contains a %1 (or %n generally) in order > to avoid ReportEvent()'s shortcoming. Even something as simple as inserting > a space between '%' and '1' might be sufficiently defensive. > Yes, but I'm tempted to defer fixing this until we see that it's a problem in reality. The logic to somehow escape such sequences looks a bit nasty in my head. But perhaps strbuf_expand() is the right hammer for this use... Then the logical next question becomes what we should expand it to. Does "%1" -> "% 1" make sense for IPv6 addresses?