From: Sami Kerola Date: Sat, 24 May 2014 16:38:49 +0000 (+0100) Subject: uuidd: ensure pid file is wrote when it is requested X-Git-Tag: v2.25-rc1~88^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=caac20642977478444c9f8be6f70a564a5966a37;p=thirdparty%2Futil-linux.git uuidd: ensure pid file is wrote when it is requested Earlier for example this 'uuidd --pid /dev/full' worked, now error is printed about truncating not being possible for character device and assuming someone would write pid to full disk it should not be go by unnoticed. Signed-off-by: Sami Kerola --- diff --git a/misc-utils/uuidd.c b/misc-utils/uuidd.c index c626105097..57309193fa 100644 --- a/misc-utils/uuidd.c +++ b/misc-utils/uuidd.c @@ -338,10 +338,12 @@ static void server_loop(const char *socket_path, const char *pidfile_path, if (pidfile_path) { sprintf(reply_buf, "%8d\n", getpid()); - ignore_result( ftruncate(fd_pidfile, 0) ); + if (ftruncate(fd_pidfile, 0)) + err(EXIT_FAILURE, _("could not truncate file: %s"), pidfile_path); write_all(fd_pidfile, reply_buf, strlen(reply_buf)); if (fd_pidfile > 1) - close(fd_pidfile); /* Unlock the pid file */ + if (close_fd(fd_pidfile) != 0) /* Unlock the pid file */ + err(EXIT_FAILURE, _("write failed: %s"), pidfile_path); } }