webfs: nstrcpy paranoia
This commit is contained in:
parent
feca854317
commit
9891d13887
4 changed files with 16 additions and 7 deletions
|
@ -2,6 +2,8 @@
|
||||||
void* emalloc(int n);
|
void* emalloc(int n);
|
||||||
char* estrdup(char *s);
|
char* estrdup(char *s);
|
||||||
|
|
||||||
|
void nstrcpy(char *to, char *from, int n);
|
||||||
|
|
||||||
Key* addkey(Key *h, char *key, char *val);
|
Key* addkey(Key *h, char *key, char *val);
|
||||||
Key* delkey(Key *h, char *key);
|
Key* delkey(Key *h, char *key);
|
||||||
char* lookkey(Key *k, char *key);
|
char* lookkey(Key *k, char *key);
|
||||||
|
|
|
@ -310,7 +310,7 @@ fswalk1(Fid *fid, char *name, Qid *qid)
|
||||||
Key *k;
|
Key *k;
|
||||||
|
|
||||||
for(k = f->client->qbody->hdr; k; k = k->next){
|
for(k = f->client->qbody->hdr; k; k = k->next){
|
||||||
strncpy(buf, k->key, sizeof(buf));
|
nstrcpy(buf, k->key, sizeof(buf));
|
||||||
if(!strcmp(name, fshdrname(buf)))
|
if(!strcmp(name, fshdrname(buf)))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -598,7 +598,7 @@ clientctl(Client *cl, char *ctl, char *arg)
|
||||||
}
|
}
|
||||||
else if(!strcmp(ctl, "request")){
|
else if(!strcmp(ctl, "request")){
|
||||||
p = cl->request;
|
p = cl->request;
|
||||||
strncpy(p, arg, sizeof(cl->request));
|
nstrcpy(p, arg, sizeof(cl->request));
|
||||||
for(; *p && isalpha(*p); p++)
|
for(; *p && isalpha(*p); p++)
|
||||||
*p = toupper(*p);
|
*p = toupper(*p);
|
||||||
*p = 0;
|
*p = 0;
|
||||||
|
@ -624,7 +624,7 @@ clientctl(Client *cl, char *ctl, char *arg)
|
||||||
nil,
|
nil,
|
||||||
};
|
};
|
||||||
for(t = tab; *t; t++){
|
for(t = tab; *t; t++){
|
||||||
strncpy(buf, *t, sizeof(buf));
|
nstrcpy(buf, *t, sizeof(buf));
|
||||||
if(!strcmp(ctl, fshdrname(buf))){
|
if(!strcmp(ctl, fshdrname(buf))){
|
||||||
cl->hdr = delkey(cl->hdr, *t);
|
cl->hdr = delkey(cl->hdr, *t);
|
||||||
if(arg && *arg)
|
if(arg && *arg)
|
||||||
|
|
|
@ -108,7 +108,7 @@ hdial(Url *u)
|
||||||
h->keep = 1;
|
h->keep = 1;
|
||||||
h->len = 0;
|
h->len = 0;
|
||||||
h->fd = fd;
|
h->fd = fd;
|
||||||
strncpy(h->addr, addr, sizeof(h->addr));
|
nstrcpy(h->addr, addr, sizeof(h->addr));
|
||||||
|
|
||||||
return h;
|
return h;
|
||||||
}
|
}
|
||||||
|
@ -441,7 +441,7 @@ http(char *m, Url *u, Key *shdr, Buq *qbody, Buq *qpost)
|
||||||
|
|
||||||
incref(qbody);
|
incref(qbody);
|
||||||
if(qpost) incref(qpost);
|
if(qpost) incref(qpost);
|
||||||
strncpy(method, m, sizeof(method));
|
nstrcpy(method, m, sizeof(method));
|
||||||
switch(rfork(RFPROC|RFMEM|RFNOWAIT)){
|
switch(rfork(RFPROC|RFMEM|RFNOWAIT)){
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
|
@ -640,7 +640,7 @@ http(char *m, Url *u, Key *shdr, Buq *qbody, Buq *qpost)
|
||||||
if(cistrcmp(s, "ICY"))
|
if(cistrcmp(s, "ICY"))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
strncpy(status, x, sizeof(status));
|
nstrcpy(status, x, sizeof(status));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if((k = parsehdr(s)) == nil)
|
if((k = parsehdr(s)) == nil)
|
||||||
|
@ -730,7 +730,7 @@ http(char *m, Url *u, Key *shdr, Buq *qbody, Buq *qpost)
|
||||||
qpost = nil;
|
qpost = nil;
|
||||||
}
|
}
|
||||||
if(cistrcmp(method, "HEAD"))
|
if(cistrcmp(method, "HEAD"))
|
||||||
strncpy(method, "GET", sizeof(method));
|
nstrcpy(method, "GET", sizeof(method));
|
||||||
case 301: /* Moved Permanently */
|
case 301: /* Moved Permanently */
|
||||||
case 307: /* Temporary Redirect */
|
case 307: /* Temporary Redirect */
|
||||||
case 308: /* Resume Incomplete */
|
case 308: /* Resume Incomplete */
|
||||||
|
|
|
@ -26,6 +26,13 @@ estrdup(char *s)
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nstrcpy(char *to, char *from, int n)
|
||||||
|
{
|
||||||
|
strncpy(to, from, n);
|
||||||
|
to[n-1] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
Key*
|
Key*
|
||||||
addkey(Key *h, char *key, char *val)
|
addkey(Key *h, char *key, char *val)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue