diff options
author | June McEnroe <june@causal.agency> | 2020-08-01 00:04:43 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-08-01 00:04:43 -0400 |
commit | f4cb4cdf2ebf630ccb9d41f5ebabdf75a9a989e8 (patch) | |
tree | 88d7204adf656791e35d98efc2e6c341f35dd46a /bounce.h | |
parent | Use snprintf instead of strlcpy (diff) | |
download | pounce-f4cb4cdf2ebf630ccb9d41f5ebabdf75a9a989e8.tar.gz pounce-f4cb4cdf2ebf630ccb9d41f5ebabdf75a9a989e8.zip |
Use snprintf instead of strlcat
Diffstat (limited to 'bounce.h')
-rw-r--r-- | bounce.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/bounce.h b/bounce.h index 050d818..21a1d4e 100644 --- a/bounce.h +++ b/bounce.h @@ -138,14 +138,17 @@ static inline enum Cap capParse(const char *list, const char *values[CapBits]) { static inline const char *capList(enum Cap caps, const char *values[CapBits]) { static char buf[1024]; buf[0] = '\0'; + size_t len = 0; for (size_t i = 0; i < ARRAY_LEN(CapNames); ++i) { if (caps & (1 << i)) { - if (buf[0]) strlcat(buf, " ", sizeof(buf)); - strlcat(buf, CapNames[i], sizeof(buf)); - if (values && values[i]) { - strlcat(buf, "=", sizeof(buf)); - strlcat(buf, values[i], sizeof(buf)); - } + len += snprintf( + &buf[len], sizeof(buf) - len, + "%s%s%s%s", + (len ? " " : ""), CapNames[i], + (values && values[i] ? "=" : ""), + (values && values[i] ? values[i] : "") + ); + if (len >= sizeof(buf)) break; } } return buf; |