Re: g_strdup_printf fails with VS2015 - snprintf doesn't support %n?
- Date: Sat, 10 Oct 2015 21:22:07 -0700
- From: Arnavion <arnavion@xxxxxxxxx>
- Subject: Re: g_strdup_printf fails with VS2015 - snprintf doesn't support %n?
You're right. It does seem to have been fixed in gnulib.
introduced by http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blobdiff;f=lib/vasnprintf.c;h=968835a1e7d5a704ae5a330ecda091b78851f73c;hp=8377d31eb591687186815e1de5cf973aac465120;hb=ba739e5686c1488280341451c3eb01a8f7b0aaa1;hpb=8c1ff97529b4f5b6462f1be302cc526ccb1960a1
On Sat, Oct 10, 2015 at 9:08 PM, LRN <lrn1986@xxxxxxxxx> wrote:
> On 11.10.2015 7:00, Arnavion wrote:
>> Hi Fan,
>> In your commit 53d487e31bc41cca9bca147e02e81b69e404fe07 to glib you
>> enabled glib to use VS2015's snprintf. Did you confirm it works?
>> I'm updating our gtk-win32 repo to use glib 2.46.0 (from 2.44.1) and
>> ATK fails to build - it runs glib-genmarshal as part of build when
>> calling g_strdup_printf. I narrowed it down to
>> glib/glib/gnulib/vasnprintf.c 's vasnprintf() function at the place
>> where it effectively calls
>> snprintf("%s%n", 12, "atkmarshal.list", &count);
>> This aborts with exit code 0xc0000417 (invalid parameters to a CRT function).
>> The Windows printf family of functions has historically not supported
>> %n (see http://blogs.msdn.com/b/michael_howard/archive/2006/09/28/775780.aspx
>> ) so that is probably the reason.
>> I see code below that call that tries to see if snprintf failed to use
>> %n and recover from it, but this of course doesn't work when the
>> implementation has already aborted inside snprintf.
> This is gnulib ...print...() implementation. I would suggest asking gnulib
> developers (maybe this is already fixed upstream, in which case glib should
> pull newer gnulib source).
> O< ascii ribbon - stop html email! - www.asciiribbon.org
> gtk-devel-list mailing list
gtk-devel-list mailing list