- increase the path element limit to 56 (found when a mbox with a long name refused to open) - remove Errlen, which was not ERRMAX - try to use Pathlen not 256 everywhere, - use nil not 0 for pointers (ned) Reference: /n/atom/patch/applied/upaslimits Date: Fri Apr 25 07:40:03 CES 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/upas/Mail/mail.c Fri Apr 25 07:36:30 2014 +++ /sys/src/cmd/upas/Mail/mail.c Fri Apr 25 07:36:31 2014 @@ -57,12 +57,13 @@ int ismaildir(char *s) { - char buf[256]; + char *path; Dir *d; int ret; - snprint(buf, sizeof buf, "%s%s", maildir, s); - d = dirstat(buf); + path = smprint("%s%s", maildir, s); + d = dirstat(path); + free(path); if(d == nil) return 0; ret = d->qid.type & QTDIR; --- /sys/src/cmd/upas/common/common.h Fri Apr 25 07:36:32 2014 +++ /sys/src/cmd/upas/common/common.h Fri Apr 25 07:36:32 2014 @@ -1,7 +1,6 @@ enum { - Elemlen = 28, - Errlen = 128, + Elemlen = 56, Pathlen = 256, }; --- /sys/src/cmd/upas/common/process.c Fri Apr 25 07:36:33 2014 +++ /sys/src/cmd/upas/common/process.c Fri Apr 25 07:36:33 2014 @@ -125,7 +125,7 @@ proc_wait(process *pp) { Waitmsg *status; - char err[Errlen]; + char err[ERRMAX]; for(;;){ status = wait(); --- /sys/src/cmd/upas/marshal/marshal.c Fri Apr 25 07:36:35 2014 +++ /sys/src/cmd/upas/marshal/marshal.c Fri Apr 25 07:36:37 2014 @@ -1745,13 +1745,13 @@ strcmp(f[2], "-") == 0) continue; if(inuse + 1 >= alloced){ - alloced += 256; + alloced <<= 1; mimetypes = erealloc(mimetypes, alloced*sizeof(Ctype)); } snprint(type, sizeof(type), "%s/%s", f[1], f[2]); mimetypes[inuse].type = estrdup(type); mimetypes[inuse].ext = estrdup(f[0]+1); - mimetypes[inuse].display = !strcmp(type, "text/plain"); + mimetypes[inuse].display = strcmp(type, "text/plain") == 0; inuse++; /* always make sure there's a terminator */ --- /sys/src/cmd/upas/ned/nedmail.c Fri Apr 25 07:36:39 2014 +++ /sys/src/cmd/upas/ned/nedmail.c Fri Apr 25 07:36:41 2014 @@ -211,9 +211,8 @@ int sz, l; for(; (sz = e - p) > 0; ){ - sprint(buf, "%d", m->id); - l = strlen(buf); - if(l+ 1 > sz) + l = snprint(buf, sizeof buf, "%d", m->id); + if(l + 1 > sz) return "*GOK*"; e -= l; memcpy(e, buf, l); @@ -255,7 +254,7 @@ int Dfmt(Fmt *f) { - char *e, buf[32]; + char *e, buf[128]; Message *m; m = va_arg(f->args, Message*); @@ -483,7 +482,7 @@ p += n; if(p == e){ s = realloc(s, (n = p - s) + 512 + 1); - if(s == 0) + if(s == nil) sysfatal("malloc: %r"); p = s + n; e = p + 512; @@ -789,7 +788,7 @@ char* extendp(char *dir, char *name) { - static char buf[256]; + static char buf[Pathlen]; if(strcmp(dir, ".") == 0) snprint(buf, sizeof buf, "%s", name); @@ -890,7 +889,7 @@ Ctype* findctype(Message *m) { - char *p, ftype[128]; + char *p, ftype[256]; int n, pfd[2]; Ctype *a, *cp; @@ -1271,7 +1270,7 @@ Reprog *prog; Message *m, *s, *e, **l, *last; int (*f)(Message*, Reprog*, char*); - static char errbuf[Errlen]; + static char errbuf[ERRMAX]; cmd->delete = 0; l = &cmd->msgs; @@ -2689,7 +2688,7 @@ closemb(); abs = 0; - if(mb == 0) + if(mb == nil) mb = "mbox"; if(strcmp(mb, ".") == 0) /* botch */ mb = homewd; @@ -2699,7 +2698,7 @@ }else snprint(file, sizeof file, "/mail/fs/%s", mb); if(singleton){ - if(chop(file, '/') == 0 || (p = strrchr(file, '/')) == 0 || p - file < 2){ + if(chop(file, '/') == nil || (p = strrchr(file, '/')) == nil || p - file < 2){ eprint("!bad mbox name\n"); return -1; } @@ -2733,7 +2732,7 @@ } snprint(root, sizeof root, "/mail/fs/%s", mbname); - if(getwd(wd, sizeof wd) == 0) + if(getwd(wd, sizeof wd) == nil) wd[0] = 0; if(!singleton && chdir(root) >= 0) strcpy(root, "."); @@ -2748,7 +2747,7 @@ char* rooted(char *s) { - static char buf[256]; + static char buf[Pathlen]; if(strcmp(root, ".") != 0) return s; --- /sys/src/cmd/upas/pop3/pop3.c Fri Apr 25 07:36:42 2014 +++ /sys/src/cmd/upas/pop3/pop3.c Fri Apr 25 07:36:43 2014 @@ -663,9 +663,9 @@ * authentication */ Chalstate *chs; -char user[256]; -char box[256]; -char cbox[256]; +char user[Pathlen]; +char box[Pathlen]; +char cbox[Pathlen]; static void hello(void) --- /sys/src/cmd/upas/q/qer.c Fri Apr 25 07:36:44 2014 +++ /sys/src/cmd/upas/q/qer.c Fri Apr 25 07:36:45 2014 @@ -23,7 +23,7 @@ void error(char *f, char *a) { - char err[Errlen+1]; + char err[ERRMAX]; char buf[256]; rerrstr(err, sizeof(err)); --- /sys/src/cmd/upas/q/runq.c Fri Apr 25 07:36:46 2014 +++ /sys/src/cmd/upas/q/runq.c Fri Apr 25 07:36:46 2014 @@ -563,15 +563,11 @@ int returnmail(char **av, char *name, char *msg) { - int pfd[2]; - Waitmsg *wm; - int fd; - char buf[256]; - char attachment[256]; - int i; + char buf[256], attachment[Pathlen], *sender; + int i, fd, pfd[2]; long n; + Waitmsg *wm; String *s; - char *sender; if(av[1] == 0 || av[2] == 0){ logit("runq - dumping bad file", name, av); @@ -656,7 +652,7 @@ void warning(char *f, void *a) { - char err[65]; + char err[ERRMAX]; char buf[256]; rerrstr(err, sizeof(err)); @@ -670,7 +666,7 @@ void error(char *f, void *a) { - char err[Errlen]; + char err[ERRMAX]; char buf[256]; rerrstr(err, sizeof(err)); --- /sys/src/cmd/upas/smtp/smtp.c Fri Apr 25 07:36:48 2014 +++ /sys/src/cmd/upas/smtp/smtp.c Fri Apr 25 07:36:49 2014 @@ -340,7 +340,7 @@ static char * connect(char* net, Mx *mx) { - char buf[256]; + char buf[ERRMAX]; int fd; fd = mxdial(net, ddomain, gdomain, mx); @@ -682,7 +682,7 @@ char * data(String *from, Biobuf *b, Mx *mx) { - char *buf, *cp, errmsg[Errlen], id[40]; + char *buf, *cp, errmsg[ERRMAX], id[40]; int i, n, nbytes, bufsize, eof, r; String *fromline; --- /sys/src/cmd/upas/smtp/smtpd.c Fri Apr 25 07:36:51 2014 +++ /sys/src/cmd/upas/smtp/smtpd.c Fri Apr 25 07:36:52 2014 @@ -79,7 +79,7 @@ void s_error(char *f, char *status) { - char errbuf[Errlen]; + char errbuf[ERRMAX]; errbuf[0] = 0; rerrstr(errbuf, sizeof(errbuf)); --- /sys/src/cmd/upas/smtp/spam.c Fri Apr 25 07:36:54 2014 +++ /sys/src/cmd/upas/smtp/spam.c Fri Apr 25 07:36:54 2014 @@ -94,7 +94,7 @@ int istrusted(char *s) { - char buf[256]; + char buf[Pathlen]; if(s == nil || *s == 0) return 0;