[syslinux] Display graphic from filename broken?

Ady ady-sf at hotmail.com
Thu Oct 30 07:25:03 PDT 2014


> 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.


More information about the Syslinux mailing list