summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/upgrade.html1
-rw-r--r--src/libs6rc/s6rc_livedir_prefix.c7
2 files changed, 4 insertions, 4 deletions
diff --git a/doc/upgrade.html b/doc/upgrade.html
index 23e4631..fa441d1 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -41,6 +41,7 @@ dependency bumped to 2.3.0.3. </li>
dependency bumped to 2.6.1.1. </li>
<li> New <tt>-p</tt> option to <a href="s6-rc-init.html">s6-rc-init</a>
to allow using several live directories with the same scandir. </li>
+ <li> New command: <a href="s6-rc.html"><tt>s6-rc diff</tt></a>. </li>
</ul>
<h2> in 0.2.1.2 </h2>
diff --git a/src/libs6rc/s6rc_livedir_prefix.c b/src/libs6rc/s6rc_livedir_prefix.c
index 18a95fe..09fe263 100644
--- a/src/libs6rc/s6rc_livedir_prefix.c
+++ b/src/libs6rc/s6rc_livedir_prefix.c
@@ -8,13 +8,12 @@
ssize_t s6rc_livedir_prefix (char const *live, char *s, size_t n)
{
size_t llen = strlen(live) ;
- size_t r ;
+ ssize_t r ;
char sfn[llen + 8] ;
memcpy(sfn, live, llen) ;
memcpy(sfn + llen, "/prefix", 8) ;
r = openreadnclose(sfn, s, n) ;
- if (r < 0) return r ;
- if (memchr(s, '/', r) || memchr(s, '\n', r))
- return (errno = EINVAL, -1) ;
+ if (r < 0) return errno == ENOENT ? 0 : r ;
+ if (memchr(s, '/', r) || memchr(s, '\n', r)) return (errno = EINVAL, -1) ;
return r ;
}