[syslinux] Display graphic from filename broken?

Ady
Thu, 30 Oct 2014 14:25:03 -0000

> Hi,
>
> the display of LSS16 files from a DISPLAY file (as documented in
>
http://www.syslinux.org/wiki/index.php/SYSLINUX#Display_graphic_from_filename:)
> seems heavily broken since syslinux has been converted from assembler to
> C. I already discovered one bug in core/include/graphics.h (and
> core/graphics.c): the pointer VGAFilePtr is of type uint16_t*, but
> should be plain char*. This bug causes the file name to be assembled
> incorrectly in com32/elflink/ldlinux/msg.c (msg_filename(), line 160):
> there the pointer is autoincremented, and if it is a uint16_t*, then it
> will autoincrement by two bytes. Therefore there will be a null char
> every second byte, which makes everybody think the file name has only
> one single character.
>
> After fixing this, the file name is assembled correctly, and
> msg_viewimage() seems to open the file successfully. The display now
> switches to graphic mode, but still the graphic file is not displayed. I
> am stuck here. The very same configuration works fine with syslinux 4.05.
>
> Adrian
> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com
> Unsubscribe or set options at:
> http://www.zytor.com/mailman/listinfo/syslinux
>

Yes, the lss16 support for DISPLAY files is broken since Syslinux 5+.
This has been reported in this Syslinux Mailing List several times
already, and there is also a bug report for it
http://bugzilla.syslinux.org/show_bug.cgi?id=10 .

FWIW, version 5.xx has many other problems, part of them resolved in
6.03 (but the lss16 issue is not yet resolved).

I hope your initial scrutiny of the source code can bring up an
actual solution / patches for both, Syslinux CLI and menu parsers
(and if possible for both, BIOS and UEFI).

Any developers willing to look at this issue and actually solve it?

TIA,
Ady.