Re: SIGSEGV in g_utf8_collate on Windows



On 20.06.2016 15:56, Sebastian Faubel wrote:
Hello Everybody,

in the upcoming Inkscape 0.92 release, the project has decided to switch
from the current autotools build system to CMake. Because there is a
large
user base on the Windows platform, I am currently trying to get the
program
to compile and be ready for packaging.

I am currently struggling with an issue that causes the program to raise
a
SIGSEGV as soon as it tries to load locale (.po/.mo) files - and I
honestly
ran out of ideas. May be someone with more experience with i18n and Gtk
can
help me with this issue. Here's the gdb output:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffa676ec530 in strcmp () from C:\WINDOWS\system32\msvcrt.dll
(gdb) bt
#0  0x00007ffa676ec530 in strcmp () from C:\WINDOWS\system32\msvcrt.dll
#1  0x0000000068654fd9 in g_utf8_collate (str1=<optimized out>,
str2=<optimized out>) at gunicollate.c:149
#2  0x0000000001136cc0 in Glib::operator== (lhs=..., rhs=...) at
c:/devlibs64/include/glibmm-2.4/glibmm/ustring.h:1522

Does anything change if you change the .po/.mo files?
Looking at the code, i see that glib calls g_utf8_normalize() on two
arguments that g_utf8_collate() is given, and does not check the return
values to not to be NULL. They could be NULL if input strings are not
UTF-8. Therefore, fudging the input strings might affect the program's
behaviour.

Obviously, the best way is to have a version of glib compiled with debug
symbols and maybe with -Og, and just debug the problem in gdb.

-- 
O< ascii ribbon - stop html email! - www.asciiribbon.org

Attachment: signature.asc
Description: OpenPGP digital signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]