From faff52ef2bd3dca503a6fef3129f02284e9b6ca4 Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Thu, 25 Apr 2013 15:14:18 +0100 Subject: [PATCH] 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 Signed-off-by: Matt Fleming --- 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) unlink(name); fd = open(name, O_WRONLY | O_CREAT | O_TRUNC, 0444); if (fd < 0) - perror(opt.device); + perror(name); return fd; } -- 2.7.4