Thread (27 messages) flat view 27 messages, 4 authors, 2016-06-15

Re: [PATCH v4 02/15] mingw: implement syslog

From: Erik Faye-Lund <hidden>
Date: 2016-06-15 22:49:46

On Tue, Oct 12, 2010 at 12:37 AM, Jonathan Nieder [off-list ref] wrote:
Erik Faye-Lund wrote:
quoted
The string gets inlined into itself (with a limit of 100 expansions)
leading to string like "foo %1 bar" becoming "foo foo foo ... foo %1
bar bar bar ... bar". With our expansion, it becomes "foo % 1 bar"
instead.
Ah, ok.  Sounds like there is no need to worry about requests for "%%1"
etc.  Thanks for explaining.
Actually, %%1 is a bit of a tricky one. It seems that %%1 is used to
escape %1 on Windows 7, but not on earlier Windows version. I did test
this on Vista an XP earlier, but I'll re-test again later and report
back, in case my earlier tests were flawed.

Can %%1 occur in an IPv6 address at all? If not, I'm tempted to not
handle it (unless it turns out I was wrong about %%1-escaping on Vista
and XP).
Maybe the symptoms and cases not covered (%2, %%1) would be worth
mentioning in the log message?
Sorry for the late reply.

I'm sure it could be added, I'm just a bit worried about making the
whole commit message too intimidating.

Something like this, perhaps?

---8<---
Strings containing "%1" gets expanded into themselves by ReportEvent,
so let's expand "%1" to "% 1" before reporting, because such string
can occur in IPv6-addresses. "%2" and above does not appear to be a
problem, probably because ReportEvent checks the number against the
wNumStrings parameter first. "%%1" is still a problem, but we don't
have a code-path producing such strings.
---8<---

This is (of course), assuming my current findings are correct.

The lack of documentation on the subject is really annoying.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help