ldlinux: Perform chdir() before parsing configsyslinux-5.01-pre3
commitd5e63aca6de51f9a70e9f78e2cc5ee3d32a18614
authorMatt Fleming <matt.fleming@intel.com>
Wed, 16 Jan 2013 11:14:59 +0000 (16 11:14 +0000)
committerMatt Fleming <matt.fleming@intel.com>
Wed, 16 Jan 2013 12:22:42 +0000 (16 12:22 +0000)
tree7e6041f83fc43b55abc409203ef048bb89cbbb15
parent8deea7fccbf76bca2ec62057afc774540da1603e
ldlinux: Perform chdir() before parsing config

The old 4.x behaviour for handling CONFIG directives of the form,

    CONFIG foo.cfg /bar

was to lookup the absolute pathname of foo.cfg, then chdir to /bar and
finally to parse foo.cfg. The 5.x behaviour reversed the chdir and
parsing steps. This meant if foo.cfg's contents were simply,

    INCLUDE say.txt

4.x would include /bar/say.txt and 5.x would include
/boot/syslinux/say.txt (assuming the current working directory was
/boot/syslinux).

What's even worse is that because of the way 'config_cwd' is used in
5.x we'd actually perform the chdir() operation after the first
INCLUDE in foo.cfg, e.g.

   INCLUDE say.txt
   INCLUDE say.txt

would include /boot/syslinux/say.txt and /bar/say.txt, respectively.

Signed-off-by: Matt Fleming <matt.fleming@intel.com>
com32/elflink/ldlinux/readconfig.c