webfs: fix memory leak in Nfmt(), use libc's new idn functions
This commit is contained in:
parent
dfec09c436
commit
d5f2d2cc3f
|
@ -25,10 +25,6 @@ Url* saneurl(Url *u);
|
||||||
int matchurl(Url *u, Url *s);
|
int matchurl(Url *u, Url *s);
|
||||||
void freeurl(Url *u);
|
void freeurl(Url *u);
|
||||||
|
|
||||||
/* idn */
|
|
||||||
char* idn2utf(char *name, char *buf, int nbuf);
|
|
||||||
char* utf2idn(char *name, char *buf, int nbuf);
|
|
||||||
|
|
||||||
/* buq */
|
/* buq */
|
||||||
int buread(Buq *q, void *v, int l);
|
int buread(Buq *q, void *v, int l);
|
||||||
int buwrite(Buq *q, void *v, int l);
|
int buwrite(Buq *q, void *v, int l);
|
||||||
|
|
|
@ -3,6 +3,6 @@ BIN=/$objtype/bin
|
||||||
TARG=webfs
|
TARG=webfs
|
||||||
|
|
||||||
HFILES=fns.h dat.h
|
HFILES=fns.h dat.h
|
||||||
OFILES=sub.$O url.$O buq.$O http.$O fs.$O idn.$O
|
OFILES=sub.$O url.$O buq.$O http.$O fs.$O
|
||||||
|
|
||||||
</sys/src/cmd/mkone
|
</sys/src/cmd/mkone
|
||||||
|
|
|
@ -73,15 +73,12 @@ Efmt(Fmt *f)
|
||||||
int
|
int
|
||||||
Nfmt(Fmt *f)
|
Nfmt(Fmt *f)
|
||||||
{
|
{
|
||||||
char *d, *s;
|
char d[Domlen], *s;
|
||||||
|
|
||||||
s = va_arg(f->args, char*);
|
s = va_arg(f->args, char*);
|
||||||
d = emalloc(Domlen);
|
if(utf2idn(s, d, sizeof(d)) != nil)
|
||||||
if(utf2idn(s, d, Domlen) == nil)
|
s = d;
|
||||||
d = s;
|
fmtprint(f, "%s", s);
|
||||||
fmtprint(f, "%s", d);
|
|
||||||
if(d != s)
|
|
||||||
free(d);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue