cron: snprint, error handling (update from sources)
This commit is contained in:
parent
82ece1bb0c
commit
b14d7ac38c
1 changed files with 11 additions and 10 deletions
|
@ -174,7 +174,7 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
switch(fork()){
|
switch(fork()){
|
||||||
case -1:
|
case -1:
|
||||||
fatal("can't fork");
|
fatal("can't fork: %r");
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -248,18 +248,18 @@ createuser(void)
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
user = getuser();
|
user = getuser();
|
||||||
sprint(file, "/cron/%s", user);
|
snprint(file, sizeof file, "/cron/%s", user);
|
||||||
fd = create(file, OREAD, 0755|DMDIR);
|
fd = create(file, OREAD, 0755|DMDIR);
|
||||||
if(fd < 0)
|
if(fd < 0)
|
||||||
sysfatal("couldn't create %s: %r", file);
|
fatal("couldn't create %s: %r", file);
|
||||||
nulldir(&d);
|
nulldir(&d);
|
||||||
d.gid = user;
|
d.gid = user;
|
||||||
dirfwstat(fd, &d);
|
dirfwstat(fd, &d);
|
||||||
close(fd);
|
close(fd);
|
||||||
sprint(file, "/cron/%s/cron", user);
|
snprint(file, sizeof file, "/cron/%s/cron", user);
|
||||||
fd = create(file, OREAD, 0644);
|
fd = create(file, OREAD, 0644);
|
||||||
if(fd < 0)
|
if(fd < 0)
|
||||||
sysfatal("couldn't create %s: %r", file);
|
fatal("couldn't create %s: %r", file);
|
||||||
nulldir(&d);
|
nulldir(&d);
|
||||||
d.gid = user;
|
d.gid = user;
|
||||||
dirfwstat(fd, &d);
|
dirfwstat(fd, &d);
|
||||||
|
@ -276,7 +276,7 @@ readalljobs(void)
|
||||||
|
|
||||||
fd = open("/cron", OREAD);
|
fd = open("/cron", OREAD);
|
||||||
if(fd < 0)
|
if(fd < 0)
|
||||||
fatal("can't open /cron\n");
|
fatal("can't open /cron: %r");
|
||||||
while((n = dirread(fd, &d)) > 0){
|
while((n = dirread(fd, &d)) > 0){
|
||||||
for(i = 0; i < n; i++){
|
for(i = 0; i < n; i++){
|
||||||
if(strcmp(d[i].name, "log") == 0 ||
|
if(strcmp(d[i].name, "log") == 0 ||
|
||||||
|
@ -288,7 +288,7 @@ readalljobs(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
u = newuser(d[i].name);
|
u = newuser(d[i].name);
|
||||||
sprint(file, "/cron/%s/cron", d[i].name);
|
snprint(file, sizeof file, "/cron/%s/cron", d[i].name);
|
||||||
du = dirstat(file);
|
du = dirstat(file);
|
||||||
if(du == nil || qidcmp(u->lastqid, du->qid) != 0){
|
if(du == nil || qidcmp(u->lastqid, du->qid) != 0){
|
||||||
freejobs(u->jobs);
|
freejobs(u->jobs);
|
||||||
|
@ -686,7 +686,7 @@ mkcap(char *from, char *to)
|
||||||
uchar rand[20];
|
uchar rand[20];
|
||||||
char *cap;
|
char *cap;
|
||||||
char *key;
|
char *key;
|
||||||
int nfrom, nto;
|
int nfrom, nto, ncap;
|
||||||
uchar hash[SHA1dlen];
|
uchar hash[SHA1dlen];
|
||||||
|
|
||||||
if(caphashfd < 0)
|
if(caphashfd < 0)
|
||||||
|
@ -695,8 +695,9 @@ mkcap(char *from, char *to)
|
||||||
/* create the capability */
|
/* create the capability */
|
||||||
nto = strlen(to);
|
nto = strlen(to);
|
||||||
nfrom = strlen(from);
|
nfrom = strlen(from);
|
||||||
cap = emalloc(nfrom+1+nto+1+sizeof(rand)*3+1);
|
ncap = nfrom + 1 + nto + 1 + sizeof(rand)*3 + 1;
|
||||||
sprint(cap, "%s@%s", from, to);
|
cap = emalloc(ncap);
|
||||||
|
snprint(cap, ncap, "%s@%s", from, to);
|
||||||
memrandom(rand, sizeof(rand));
|
memrandom(rand, sizeof(rand));
|
||||||
key = cap+nfrom+1+nto+1;
|
key = cap+nfrom+1+nto+1;
|
||||||
enc64(key, sizeof(rand)*3, rand, sizeof(rand));
|
enc64(key, sizeof(rand)*3, rand, sizeof(rand));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue