Fix #100: Adjust path to COND_RECONF /var/run symlink may be missing

On systems with the new /run hierarchy the compat symlink from /var/run
may be missing, or not yet be set up by bootmisc.so.  This patch adds a
layer of safety to the condition layer, both set and get cond ops now
perform an adjustmed of the condition path if needed.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson committed 2018-03-18 11:49:27 +01:00
1 parent 90249e50ef
commit dc7039b8d8
3 files changed
+26 -5

No files matched your search

+6 -2
View File
@@ -31,12 +31,16 @@
#include "pid.h"
#include "service.h"
static int cond_set_gen(const char *path, unsigned int gen)
static int cond_set_gen(const char *file, unsigned int gen)
{
char *ptr, path[256];
FILE *fp;
int ret;
fp = fopen(path, "w");
/* /var/run --> /run symlink may not exist (yet) */
ptr = pid_runpath(file, path, sizeof(path));
fp = fopen(ptr, "w");
if (!fp)
return -1;