[gs-bugs] [Bug 689984] New: xps_strcasecmp() causes issues when expected to behave like strcasecmp()

bugs.ghostscript.com-bugzilla-daemon at ghostscript.com bugs.ghostscript.com-bugzilla-daemon at ghostscript.com
Mon Jul 28 21:49:47 PDT 2008


           Summary: xps_strcasecmp() causes issues when expected to behave
                    like strcasecmp()
           Product: GhostXPS
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P4
         Component: General
        AssignedTo: tor.andersson at artifex.com
        ReportedBy: dgeering at toshiba-tap.com
         QAContact: gs-bugs at ghostscript.com

In xpszip.c there is an error in xps_find_part() (line 160).

xps_find_part() uses a function xps_strcasecmp(), but xps_strcasecmp() will
always return zero (a match) if the first string is shorter than the second
string, which means that a lot of matches will be incorrect if xps_strcasecmp()
is expected to behave as strcasecmp() would.

I'm not sure about all events that would trigger this, but in my particular case
it was not deobfuscating fonts. The xps_new_glyph() function was calling
xps_find_part(), but xps_find_part() was always returning the first "part" of
the context because the first part's name was shorter than font part's name. By
changing "xps_strcasecmp()" to "strcasecmp()" in xpszip.c:xps_find_part(),
obfuscated fonts become deobfuscated and loaded correctly.

------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.

More information about the gs-bugs mailing list