diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-01-02 04:47:42 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-01-02 04:47:42 +0100 |
commit | 77ad456b31b2258be4c2fa2f4842910a7c92062c (patch) | |
tree | 5c0fad6a985cceeb24403b82c8dae9a6f9c82a1b /sys/src | |
parent | e1ca49d625aaca1aae1dc570e7bc63a499d3e741 (diff) |
libauth: simplify _attrfmt() using fmtprint() avoiding stack buffer
Diffstat (limited to 'sys/src')
-rw-r--r-- | sys/src/libauth/attr.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/sys/src/libauth/attr.c b/sys/src/libauth/attr.c index f67a12e31..740fb5f2c 100644 --- a/sys/src/libauth/attr.c +++ b/sys/src/libauth/attr.c @@ -5,28 +5,26 @@ int _attrfmt(Fmt *fmt) { - char *b, buf[1024], *ebuf; Attr *a; + int first = 1; - ebuf = buf+sizeof buf; - b = buf; - strcpy(buf, " "); - for(a=va_arg(fmt->args, Attr*); a; a=a->next){ + for(a=va_arg(fmt->args, Attr*); a != nil; a=a->next){ if(a->name == nil) continue; switch(a->type){ + default: + continue; case AttrQuery: - b = seprint(b, ebuf, " %q?", a->name); + fmtprint(fmt, first+" %q?", a->name); break; case AttrNameval: - b = seprint(b, ebuf, " %q=%q", a->name, a->val); - break; case AttrDefault: - b = seprint(b, ebuf, " %q:=%q", a->name, a->val); + fmtprint(fmt, first+" %q=%q", a->name, a->val); break; } + first = 0; } - return fmtstrcpy(fmt, buf+1); + return 0; } Attr* |