[syslinux] [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http

Matt Fleming matt at console-pimps.org
Fri Jun 7 14:53:24 PDT 2013


On Fri, 07 Jun, at 10:30:11AM, Matt Fleming wrote:
> On Wed, 05 Jun, at 09:29:58PM, Gerardo Exequiel Pozzi wrote:
> > dnsmasq-tftp: file /run/archiso/bootmnt/arch/libcom32.c32 not found
> > dnsmasq-tftp: file /run/archiso/bootmnt/arch//libcom32.c32 not found
> > dnsmasq-tftp: file /run/archiso/bootmnt/arch/libcom32.c32 not found
> > dnsmasq-tftp: file
> > /run/archiso/bootmnt/arch//arch//boot/syslinux/libcom32.c32 not found
>  
> OK, here's the bug - the double /arch. Let me take a look at what's
> going on inside PXELINUX.

Right, basically the internal PATH variable that keeps a list of
directories in which to search for files doesn't play well when it
encounters TFTP-style paths.

The entire problem stems from the fact that colons (':') are used to
separate entries in the PATH directive and they're also used in
TFTP-style paths. While I see that you don't use the PATH directive in
your config files, a list is built internally nevertheless. Based on my
testing your's will look something like,

  "::/arch/boot/syslinux/"

The code in findpath() sees the first ':' and goes nutso.

I'm not quite sure what the proper solution is. Clearly using ':' to
separate entries was a terrible idea, but presumably some people are
using that syntax now and it would cause issues if we changed it - the
PATH directive has been supported since 5.00.

-- 
Matt Fleming, Intel Open Source Technology Center


More information about the Syslinux mailing list