diff options
Diffstat (limited to 'src/conn-tools/s6-accessrules-cdb-from-fs.c')
| -rw-r--r-- | src/conn-tools/s6-accessrules-cdb-from-fs.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/conn-tools/s6-accessrules-cdb-from-fs.c b/src/conn-tools/s6-accessrules-cdb-from-fs.c index f1efefa..c876155 100644 --- a/src/conn-tools/s6-accessrules-cdb-from-fs.c +++ b/src/conn-tools/s6-accessrules-cdb-from-fs.c @@ -130,11 +130,11 @@ int main (int argc, char const *const *argv) golc = gol_main(argc, argv, 0, 0, rgola, 1, 0, wgola) ; argc -= golc ; argv += golc ; - if (argc < 3) strerr_dieusage(100, USAGE) ; + if (argc < 2) strerr_dieusage(100, USAGE) ; if (wgola[GOLA_MODE] && !uint0_oscan(wgola[GOLA_MODE], &mode)) strerr_dief1x(100, "mode needs to be an unsigned integer (in octal)") ; - if (!stralloc_cats(&tmp, argv[1])) return 0 ; + if (!stralloc_cats(&tmp, argv[0])) return 0 ; if (!stralloc_readyplus(&tmp, 8210)) strerr_diefu1sys(111, "stralloc_catb") ; stralloc_catb(&tmp, SUFFIX, sizeof(SUFFIX)) ; @@ -145,13 +145,13 @@ int main (int argc, char const *const *argv) cleanup() ; strerr_diefu1sys(111, "cdbmake_start") ; } - dir = opendir(argv[2]) ; + dir = opendir(argv[1]) ; if (!dir) { cleanup() ; - strerr_diefu2sys(111, "opendir ", argv[2]) ; + strerr_diefu2sys(111, "opendir ", argv[1]) ; } - if (!stralloc_cats(&sa, argv[2]) || !stralloc_catb(&sa, "/", 1)) dienomem() ; + if (!stralloc_cats(&sa, argv[1]) || !stralloc_catb(&sa, "/", 1)) dienomem() ; start = sa.len ; for (;;) @@ -173,6 +173,7 @@ int main (int argc, char const *const *argv) strerr_diefu2sys(111, "opendir ", sa.s) ; } sa.s[base-1] = '/' ; + for (;;) { errno = 0 ; @@ -194,9 +195,10 @@ int main (int argc, char const *const *argv) if (errno) { cleanup() ; - strerr_diefu2sys(111, "readdir ", argv[2]) ; + strerr_diefu2sys(111, "readdir ", argv[1]) ; } dir_close(dir) ; + if (!cdbmake_finish(&c)) { cleanup() ; @@ -213,10 +215,10 @@ int main (int argc, char const *const *argv) cleanup() ; strerr_diefu2sys(111, "chmod ", tmp.s) ; } - if (rename(tmp.s, argv[1]) < 0) + if (rename(tmp.s, argv[0]) < 0) { cleanup() ; - strerr_diefu4sys(111, "rename ", tmp.s, " to ", argv[1]) ; + strerr_diefu4sys(111, "rename ", tmp.s, " to ", argv[0]) ; } return 0 ; } |
