[syslinux:elflink] linux: Clear up error message

syslinux-bot for Matt Fleming matt.fleming at intel.com
Thu May 2 05:57:06 PDT 2013

Commit-ID:  faff52ef2bd3dca503a6fef3129f02284e9b6ca4
Gitweb:     http://www.syslinux.org/commit/faff52ef2bd3dca503a6fef3129f02284e9b6ca4
Author:     Matt Fleming <matt.fleming at intel.com>
AuthorDate: Thu, 25 Apr 2013 15:14:18 +0100
Committer:  Matt Fleming <matt.fleming at intel.com>
CommitDate: Thu, 25 Apr 2013 15:24:35 +0100

linux: Clear up error message

Passing opt.device to perror() in do_open_file() results in confusing
error messages, as Jack reports,

  Last night, I was trying to install syslinux (5.01) to a SD card of
  mine, writing to a subdirectory to keep the layout neat:

  syslinux-5.01/linux# ./syslinux -i -d /boot /dev/mmcblk0p1
  /dev/mmcblk0p1: No such file or directory

  The message is coming from do_open_file() in syslinux.c: the call to
  open() fails because the containing directory isn't present, and then it
  calls perror(opt.device).

We should instead be passing 'name' to perror() so that we know _which_
file doesn't exist.

Reported-by: Jack Kelly <jack at jackkelly.name>
Signed-off-by: Matt Fleming <matt.fleming at intel.com>

 linux/syslinux.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/linux/syslinux.c b/linux/syslinux.c
index f4749ea..f64834b 100755
--- a/linux/syslinux.c
+++ b/linux/syslinux.c
@@ -251,7 +251,7 @@ int do_open_file(char *name)
     fd = open(name, O_WRONLY | O_CREAT | O_TRUNC, 0444);
     if (fd < 0)
-	perror(opt.device);
+	perror(name);
     return fd;

More information about the Syslinux-commits mailing list