| Summary: | xorg server crashes on drawing line with sertain form and type by libX11 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vladislav Zavjalov <slazav> | ||||||
| Component: | xorg-server | Assignee: | Valery Inozemtsev <shrek> | ||||||
| Status: | NEW --- | QA Contact: | qa-sisyphus | ||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | shrek | ||||||
| Version: | unstable | ||||||||
| Hardware: | all | ||||||||
| OS: | Linux | ||||||||
| Attachments: |
|
||||||||
еще раз и по русски Легко! :) В приложении - короткая программа на libX11, которая рушит х-сервер. Программа рисует пунктирную линия с cap_style=CapProjecting специальной толщины и формы. Воспроизводится на драйверах nv, nvidia, intel, vesa, fbdev. Воспроизводится не только в AltLinux, но и на каком-то Gentoo. xorg-server-1.6.5-alt1 Created attachment 4089 [details]
Xvfb valgrind log
miFillPolyHelper() is called from miLineProjectingCap() with the following parameters: pixel: 1 spanData: 0 y: 11 overall_height: 6 left count: 2 right count: 2 lefts[0].height: -3 lefts[0].x: 62 lefts[0].stepx: 1 lefts[0].signdx: 1 lefts[0].e: -2 lefts[0].dy: 4 lefts[0].dx: 2 rights[0].height: 6 rights[0].x: 59 rights[0].stepx: 0 rights[0].signdx: -1 rights[0].e: -5 rights[0].dy: 6 rights[0].dx: 4 lefts[1].height: -3 lefts[1].x: 62 lefts[1].stepx: 1 lefts[1].signdx: 1 lefts[1].e: -2 lefts[1].dy: 4 lefts[1].dx: 2 rights[1].height: 6 rights[1].x: 59 rights[1].stepx: 0 rights[1].signdx: -1 rights[1].e: -5 rights[1].dy: 6 rights[1].dx: 4 height = -3 looks strange :) Oops! These values for {lefts,rights}[1] are more correct:
pixel: 1
spanData: 0
y: 11
overall_height: 6
left count: 2
right count: 2
lefts[0].height: -3
lefts[0].x: 62
lefts[0].stepx: 1
lefts[0].signdx: 1
lefts[0].e: -2
lefts[0].dy: 4
lefts[0].dx: 2
rights[0].height: 6
rights[0].x: 59
rights[0].stepx: 0
rights[0].signdx: -1
rights[0].e: -5
rights[0].dy: 6
rights[0].dx: 4
lefts[1].height: 9
lefts[1].x: 55
lefts[1].stepx: 0
lefts[1].signdx: -1
lefts[1].e: -3
lefts[1].dy: 6
lefts[1].dx: 4
rights[1].height: 0
rights[1].x: 48
rights[1].stepx: 1
rights[1].signdx: 1
rights[1].e: -1
rights[1].dy: 4
rights[1].dx: 2
miLineProjectingCap runs with dx: -6 dy: -4 There was a similar bug when negative height appeares from dx=0, dy<0. see: https://bugs.freedesktop.org/show_bug.cgi?id=2690 повесил патч в https://bugs.freedesktop.org/show_bug.cgi?id=15946 В общем, непонятно, что делать с этой ошибкой. Проблема есть, патч тоже, вроде есть... Ни в апстриме ни тут пока не комментируют :) Ясно, что libX11 для рисования линий уже никто не использует, но все таки, может, надо исправить?.. Это я как мантейнер и пользователь xfig волнуюсь :)) |
Created attachment 4049 [details] Program that crashes xorg server. Build with -lX11 There is a short libX11 x-client in attachment that crashes xorg-server. Xdriver does not metter (tested on nv, nvidia, intel, vesa, fbdev drivers, on Altlinux and Gentoo linux). This program just draws a dashed line with cap_style=CapProjecting and specific form and width.