2024-11-24 17:02 UTC

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002599LibSVGTiny[All Projects] Generalpublic2019-02-17 10:30
ReporterFelix S. 
Assigned ToMichael Drake 
PrioritynormalSeverityminorReproducibilityalways
StatusconfirmedResolutionopen 
Summary0002599: libsvgtiny uses sscanf() to parse decimal fractions in path data, which is locale-dependent
Descriptionlibsvgtiny uses the C standard library function sscanf() to parse decimal fractions into floating-point values. Unfortunately, the exact format accepted by this function is locale-dependent. This makes parsing fail in locales where the decimal point character is different from '.'.

Given that sscanf() does not offer a portable way to enforce locale-independent parsing, libsvgtiny should probably implement its own fraction-parsing function from scratch.
Steps To Reproduce0. Ensure that the de_DE.UTF-8 locale (or any other locale with decimal point ',') is available on your system.
1. In libsvgtiny's test/data/ directory, launch `LC_NUMERIC=de_DE.UTF-8 netsurf-fb file://`pwd`/tiger.svg` from the shell (replacing de_DE.UTF-8 with the respective locale if necessary).
2. Observe numerous 'parse failed at ...' messages in the console.
3. In the same directory, launch `LC_NUMERIC=C netsurf-fb file://`pwd`/tiger.svg`.
4. Observe no failure messages.
TagsNo tags attached.
Fixed in CI build #
Reported in CI build #
Attached Files

-Relationships
+Relationships

-Notes
Michael Drake

~0001889

Michael Drake (administrator)

Thanks for the report. You're right. This will require quite a rewrite of libsvgtiny's parsing code. We'll try to get around to it some time, but we're all busy with other things at the moment.

If anyone's interested in helping please get in touch.
+Notes

-Issue History
Date Modified Username Field Change
2018-05-11 06:36 Felix S. New Issue
2019-02-16 18:27 Vincent Sanders Assigned To => Michael Drake
2019-02-16 18:27 Vincent Sanders Status new => confirmed
2019-02-17 10:30 Michael Drake Note Added: 0001889
+Issue History