aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs6rc/s6rc_livedir_create.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs6rc/s6rc_livedir_create.c')
-rw-r--r--src/libs6rc/s6rc_livedir_create.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libs6rc/s6rc_livedir_create.c b/src/libs6rc/s6rc_livedir_create.c
index 7695dfd..8d4f3d7 100644
--- a/src/libs6rc/s6rc_livedir_create.c
+++ b/src/libs6rc/s6rc_livedir_create.c
@@ -29,13 +29,13 @@ int s6rc_livedir_create (stralloc *sa, char const *live, char const *suffix, cha
if (!mkdtemp(sa->s + sabase)) { umask(m) ; goto err ; }
newlen = sa->len-- ;
if (!stralloc_catb(sa, "/servicedirs", 13)) { umask(m) ; goto delerr ; } /* allocates enough for the next strcpys */
- if (mkdir(sa->s + sabase, 0755) < 0) { umask(m) ; goto delerr ; }
+ if (mkdir(sa->s + sabase, 0755) == -1) { umask(m) ; goto delerr ; }
umask(m) ;
- if (chmod(sa->s + sabase, 0755) < 0) goto delerr ;
+ if (chmod(sa->s + sabase, 0755) == -1) goto delerr ;
strcpy(sa->s + newlen, "compiled") ;
- if (symlink(compiled, sa->s + sabase) < 0) goto delerr ;
+ if (symlink(compiled, sa->s + sabase) == -1) goto delerr ;
strcpy(sa->s + newlen, "scandir") ;
- if (symlink(scdir, sa->s + sabase) < 0) goto delerr ;
+ if (symlink(scdir, sa->s + sabase) == -1) goto delerr ;
strcpy(sa->s + newlen, "prefix") ;
if (!openwritenclose_unsafe(sa->s + sabase, prefix, strlen(prefix))) goto delerr ;
strcpy(sa->s + newlen, "state") ;
@@ -44,13 +44,14 @@ int s6rc_livedir_create (stralloc *sa, char const *live, char const *suffix, cha
if (!openwritenclose_unsafe(sa->s + sabase, "", 0)) goto delerr ;
sa->len = newlen-1 ;
sa->s[newlen-1] = 0 ;
+ if (chmod(sa->s + sabase, 0755) == -1) goto delerr ;
*dirlen = ddirlen ;
return 1 ;
delerr:
{
int e = errno ;
- sa->s[newlen] = 0 ;
+ sa->s[newlen-1] = 0 ;
rm_rf_in_tmp(sa, sabase) ;
errno = e ;
}