diff options
| author | Cy Schubert <cy@FreeBSD.org> | 2023-06-26 22:56:52 +0000 |
|---|---|---|
| committer | Cy Schubert <cy@FreeBSD.org> | 2023-06-26 22:56:52 +0000 |
| commit | b6a943f7197af1a5eb6bb028b9b808ec5016e30c (patch) | |
| tree | cfbb91e940dd89d0e1d46095f43c228d7d079fa0 /lib/roken/snprintf.c | |
| parent | 6f4e10db3298f6d65e1e646fe52aaafc3682b788 (diff) | |
heimdal: Vendor import f62e2f278vendor/heimdal/7.8.0-2023-06-10-f62e2f278vendor/heimdal
Heimdal 7.8.0 does not support OpenSSL 3.0. 7.9.0 will but it hasn't
been released yet. We are importing f62e2f278 for its OpenSSL 3.0
support.
Diffstat (limited to 'lib/roken/snprintf.c')
| -rw-r--r-- | lib/roken/snprintf.c | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/lib/roken/snprintf.c b/lib/roken/snprintf.c index 9f6d3ca0412f..54018bae7982 100644 --- a/lib/roken/snprintf.c +++ b/lib/roken/snprintf.c @@ -309,7 +309,7 @@ append_char(struct snprintf_state *state, (*state->append_char) (state, ' '); ++len; } - return 0; + return len; } /* @@ -437,8 +437,7 @@ xyzprintf (struct snprintf_state *state, const char *char_format, va_list ap) switch (c) { case 'c' : - append_char(state, va_arg(ap, int), width, flags); - ++len; + len += append_char(state, va_arg(ap, int), width, flags); break; case 's' : len += append_string(state, @@ -518,7 +517,7 @@ xyzprintf (struct snprintf_state *state, const char *char_format, va_list ap) } case '\0' : --format; - /* FALLTHROUGH */ + HEIM_FALLTHROUGH; case '%' : (*state->append_char)(state, c); ++len; @@ -560,7 +559,7 @@ rk_snprintf (char *str, size_t sz, const char *format, ...) va_start(args, format); ret2 = vsprintf (tmp, format, args); va_end(args); - if (ret != ret2 || strcmp(str, tmp)) + if (ret != ret2 || strcmp(str, tmp) != 0) abort (); free (tmp); } @@ -592,7 +591,7 @@ rk_asprintf (char **ret, const char *format, ...) va_start(args, format); ret2 = vsprintf (tmp, format, args); va_end(args); - if (val != ret2 || strcmp(*ret, tmp)) + if (val != ret2 || strcmp(*ret, tmp) != 0) abort (); free (tmp); } @@ -621,7 +620,7 @@ rk_asnprintf (char **ret, size_t max_sz, const char *format, ...) abort (); ret2 = vsprintf (tmp, format, args); - if (val != ret2 || strcmp(*ret, tmp)) + if (val != ret2 || strcmp(*ret, tmp) != 0) abort (); free (tmp); } @@ -701,3 +700,30 @@ rk_vsnprintf (char *str, size_t sz, const char *format, va_list args) return ret; } #endif + +#if !defined(HAVE_EVASPRINTF) || defined(TEST_SNPRINTF) +ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL +rk_evasprintf(const char *format, va_list args) +{ + char *s = NULL; + + if (vasprintf(&s, format, args) == -1 || s == NULL) + errx(1, "Out of memory"); + return s; +} +#endif + +#if !defined(HAVE_EASPRINTF) || defined(TEST_SNPRINTF) +ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL +rk_easprintf(const char *format, ...) +{ + va_list args; + char *s = NULL; + + va_start(args, format); + if (vasprintf(&s, format, args) == -1 || s == NULL) + errx(1, "Out of memory"); + va_end(args); + return s; +} +#endif |
