pidfile.c: Upgrade to OpenBSD r1.11, asprintf() fixes.

Do not assume that asprintf() clears the pointer on failure, which
   is non-portable.  Also add missing asprintf() return value checks.
   Signed-off-by: millert@
   Signed-off-by: deraadt@ guenther@ doug@

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson
2015-07-22 11:53:44 +02:00
parent 3eb1fbb31d
commit a4cbc7a10e
+3 -4
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: pidfile.c,v 1.10 2014/06/30 00:26:22 deraadt Exp $ */
/* $OpenBSD: pidfile.c,v 1.11 2015/06/03 02:24:36 millert Exp $ */
/* $NetBSD: pidfile.c,v 1.4 2001/02/19 22:43:42 cgd Exp $ */
/*-
@@ -47,7 +47,7 @@ extern char *__progname;
int
pidfile(const char *basename)
{
int save_errno, result;
int save_errno;
pid_t pid;
FILE *f;
@@ -60,8 +60,7 @@ pidfile(const char *basename)
}
/* _PATH_VARRUN includes trailing / */
result = asprintf(&pidfile_path, "%s%s.pid", _PATH_VARRUN, basename);
if (result == -1 || pidfile_path == NULL)
if (asprintf(&pidfile_path, "%s%s.pid", _PATH_VARRUN, basename) == -1)
return (-1);
if ((f = fopen(pidfile_path, "w")) == NULL) {