xpdf 2.00 i SEGV

Jakub Bogusz qboosh w pld.org.pl
Wto, 5 Lis 2002, 22:00:12 CET


On Tue, Nov 05, 2002 at 09:29:06AM +0100, Artur Frysiak wrote:
> On Mon, Nov 04, 2002 at 10:13:41PM +0100, Jakub Bogusz wrote:
> > Coś jest nie-tego. Dostaję SEGV na wielu plikach, które dało się
> > obejrzeć poprzednią wersją.
> > 
> > Normalnie wywalił się w jakimś bzdurnym miejscu - okazało się, że po
> > wykonaniu jakieś metody this się robi jakieś kosmiczne.
> > Po użyciu ef wywala się gdzieś wewnątrz t1lib (t1_Bresenham).
> > Być może to błąd w t1lib, ale objawia się po upgrade uniemożliwiając
> > oglądanie różnych dokumentów.
> 
> Może to być konflikt freetype1 i freetype2. Coś o tym było w źródłach
> xpdfa.

Bleh. Nie. To problem z localami, a konkretnie LC_NUMERIC.
On tworzy sobie jakieś tymczasowe pliki z fontami (chyba wyciągniętymi
z pdf-a), które zawierają liczby zmiennoprzecinkowe.
Przy LC_NUMERIC=pl_PL wpada tam np.:

/FontMatrix [0,001 0 0 0,001 0 0] readonly def

Nie wiem jak on to potem wczytuje (jak zobaczyłem przecinki, to już
wiedziałem o co chodzi i nie chciało mi się dalej szukać), ale jeśli
tam są przecinki, to w tablicy lądują różne NaNy, on potem przez tę
macierz mnoży, wychodzą jakieś kosmiczne współrzędne, na podstawie
których wyliczany jest adres... (swoją drogą kłania się nie
sprawdzanie danych wejściowych :/)

Przy LC_NUMERIC=C macierz wygląda tak:

/FontMatrix [0.001 0 0 0.001 0 0] readonly def

...i wszystkie kłopotliwe pdf-y daje się oglądać.


-- 
Jakub Bogusz    http://www.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl