From 5ec91a6413dbf87a9fc0aa3e8038d81d2054bb0a Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 25 Feb 2019 03:39:31 +0100 Subject: [PATCH] upas/fs: fix %.*s format usage --- sys/src/cmd/upas/fs/imap.c | 5 ++--- sys/src/cmd/upas/fs/mdir.c | 4 +--- sys/src/cmd/upas/fs/plan9.c | 6 ++---- sys/src/cmd/upas/fs/pop3.c | 2 +- sys/src/cmd/upas/fs/strtotm.c | 2 +- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/sys/src/cmd/upas/fs/imap.c b/sys/src/cmd/upas/fs/imap.c index 8d6503501..2008ac77f 100644 --- a/sys/src/cmd/upas/fs/imap.c +++ b/sys/src/cmd/upas/fs/imap.c @@ -591,9 +591,8 @@ imap4cram(Imap *imap) if(n == -1) return "cannot find IMAP password"; for(i = 0; i < n; i++) - if(rbuf[i] >= 'A' && rbuf[i] <= 'Z') - rbuf[i] += 'a' - 'A'; - l = snprint(ubuf, sizeof ubuf, "%s %.*s", usr, n, rbuf); + rbuf[i] = tolower(rbuf[i]); + l = snprint(ubuf, sizeof ubuf, "%s %.*s", usr, utfnlen(rbuf, n), rbuf); idprint(imap, "raw cram [%s]\n", ubuf); snprint(ebuf, sizeof ebuf, "%.*[", l, ubuf); diff --git a/sys/src/cmd/upas/fs/mdir.c b/sys/src/cmd/upas/fs/mdir.c index 782ea7bae..59cb243be 100644 --- a/sys/src/cmd/upas/fs/mdir.c +++ b/sys/src/cmd/upas/fs/mdir.c @@ -26,10 +26,8 @@ static void parseunix(Message *m) { char *s, *p; - int l; - l = m->header - m->start; - m->unixheader = smprint("%.*s", l, m->start); + m->unixheader = smprint("%.*s", utfnlen(m->start, m->header - m->start), m->start); s = m->start + 5; if((p = strchr(s, ' ')) == nil) return; diff --git a/sys/src/cmd/upas/fs/plan9.c b/sys/src/cmd/upas/fs/plan9.c index 54a2b2111..aa8c67649 100644 --- a/sys/src/cmd/upas/fs/plan9.c +++ b/sys/src/cmd/upas/fs/plan9.c @@ -46,7 +46,7 @@ chkunix(char *s, int n) r = chkunix0(s, n); if(r == -1) - eprint("plan9: warning naked from [%.*s]\n", n, s); + eprint("plan9: warning naked from [%.*s]\n", utfnlen(s, n), s); return r; } @@ -54,11 +54,9 @@ static char* parseunix(Message *m) { char *s, *p, *q; - int l; Tm tm; - l = m->header - m->start; - m->unixheader = smprint("%.*s", l, m->start); + m->unixheader = smprint("%.*s", utfnlen(m->start, m->header - m->start), m->start); s = m->start + 5; if((p = strchr(s, ' ')) == nil) return s; diff --git a/sys/src/cmd/upas/fs/pop3.c b/sys/src/cmd/upas/fs/pop3.c index cd7400e2f..a835e7d2b 100644 --- a/sys/src/cmd/upas/fs/pop3.c +++ b/sys/src/cmd/upas/fs/pop3.c @@ -182,7 +182,7 @@ pop3login(Pop *pop) if(s = pop3capa(pop)) return s; - pop3cmd(pop, "APOP %s %.*s", user, n, buf); + pop3cmd(pop, "APOP %s %.*s", user, utfnlen(buf, n), buf); if(!isokay(s = pop3resp(pop))) return s; diff --git a/sys/src/cmd/upas/fs/strtotm.c b/sys/src/cmd/upas/fs/strtotm.c index 6c9f7d3b6..ccdc7c16c 100644 --- a/sys/src/cmd/upas/fs/strtotm.c +++ b/sys/src/cmd/upas/fs/strtotm.c @@ -85,7 +85,7 @@ strtotm(char *p, Tm *t) tm.year = j - 1900; continue; } - //eprint("strtotm: garbage %.*s\n", q - p, p); + //eprint("strtotm: garbage %.*s\n", utfnlen(p, q - p), p); } if(tm.mon < 0 || tm.year < 0 || tm.hour < 0 || tm.min < 0