Danny Smith wrote:

Unless I'missing soemthing, this is 'just' a build issue in genmode.c.
GCC builds fine for Vista target on WindowsXP. So the fix needs to be build dependent, not host dependent.

Well if a clean fix can be found that simply avoids the use of %n, then
that's target independent and clean. I think that makes sense. The idea
that %n is a security risk is not some Microsoft-only invention, and it
is not unlikely that other environments will implement a similar check.

In case you have not seen it, this is the bit of code we are talking about :-

   
http://git.infradead.org/?p=gcc.git;a=blob;f=gcc/genmodes.c;h=8e71a123edb46166a16971bbf1862c2a0cfcf1b9;hb=master#l788

I think a sprintf followed by a strlen and printf is _guarenteed_ to be much more portable than printf's return value. The overhead of the strlen is minimal.

A simple fix that works on all platforms is all that is required.

Aaron


Reply via email to