aboutsummaryrefslogtreecommitdiffstats
path: root/src/repo/s6-rc-set-change.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-11-26 10:15:55 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2025-11-26 10:15:55 +0000
commitc40145fca667f8b0243bbcf276b5aade18f7ae5b (patch)
treed1de5084859c2d9fe0d599e1a3b1cfe6674492f9 /src/repo/s6-rc-set-change.c
parente31ad31e271e9e78f6755e047bb25230c6b542f1 (diff)
downloads6-rc-c40145fca667f8b0243bbcf276b5aade18f7ae5b.tar.gz
s6-rc-set-list is now s6-rc-set-status and does everything
Diffstat (limited to 'src/repo/s6-rc-set-change.c')
-rw-r--r--src/repo/s6-rc-set-change.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/repo/s6-rc-set-change.c b/src/repo/s6-rc-set-change.c
index 1ab92f6..c678357 100644
--- a/src/repo/s6-rc-set-change.c
+++ b/src/repo/s6-rc-set-change.c
@@ -129,9 +129,16 @@ int main (int argc, char const *const *argv)
if (newsub->sub == 3 && !(wgolb & GOLB_FORCE_ESSENTIAL))
strerr_diefu1x(10, " artificially mark a service as essential without --force-essential") ;
+ for (unsigned int i = 2 ; i < argc ; i++)
+ {
+ if (argv[i][0] == '.')
+ strerr_dief2x(100, "service names cannot ", "start with a dot") ;
+ if (strchr(argv[i], '/') || strchr(argv[i], '\n'))
+ strerr_dief2x(100, "service names cannot ", "contain / or newlines") ;
+ }
+
fdlock = s6rc_repo_lock(wgola[GOLA_REPODIR], 1) ;
if (fdlock == -1) strerr_diefu2sys(111, "lock ", wgola[GOLA_REPODIR]) ;
-
if (!s6rc_repo_makesvlist_byname(wgola[GOLA_REPODIR], argv[0], &storage, &svlist)) _exit(111) ;
list = genalloc_s(s6rc_repo_sv, &svlist) ;
listn = genalloc_len(s6rc_repo_sv, &svlist) ;