char *ret;
/* We have to let through NULL for take(). */
- if (likely(p)) {
- len = strlen(p);
- if (len > n)
- len = n;
- } else
+ if (likely(p))
+ len = strnlen(p, n);
+ else
len = n;
ret = tal_dup_(ctx, p, 1, len, 1, false, TAL_LABEL(char, "[]"));
static bool do_vfmt(char **buf, size_t off, const char *fmt, va_list ap)
{
/* A decent guess to start. */
- size_t max = strlen(fmt) * 2;
+ size_t max = strlen(fmt) * 2 + 1;
bool ok;
for (;;) {