From c85f773640965066ce5488f0be291fc69065a50b Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 11 Oct 2019 17:04:15 +0200 Subject: tdef: Return correct snprintf value for osmo_tdef_range_str_buf() len provides extra information in the case the buffer was too small, because it tells the caller "the number of characters (excluding the terminating null byte) which would have been written to the final string if enough space had been available" (man snprintf). Change-Id: Icafe559e19a92e2ae72fdd0dd2d9a394b1eda878 --- src/tdef.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tdef.c b/src/tdef.c index 94d987fa..71a33158 100644 --- a/src/tdef.c +++ b/src/tdef.c @@ -256,7 +256,9 @@ bool osmo_tdef_val_in_range(struct osmo_tdef *tdef, unsigned long new_val) * \param[in] buf The buffer where the string representation is stored. * \param[in] buf_len Length of buffer in bytes. * \param[in] tdef Timer entry from a timer definition table. - * \return The number of characters printed on success, negative on error. See snprintf(). + * \return The number of characters printed on success (or number of characters + * which would have been written to the final string if enough space + * had been available), negative on error. See snprintf(). */ int osmo_tdef_range_str_buf(char *buf, size_t buf_len, struct osmo_tdef *t) { @@ -275,7 +277,7 @@ int osmo_tdef_range_str_buf(char *buf, size_t buf_len, struct osmo_tdef *t) if (ret < 0) return ret; OSMO_SNPRINTF_RET(ret, rem, offset, len); - return ret; + return len; } /*! Using osmo_tdef for osmo_fsm_inst: find a given state's osmo_tdef_state_timeout entry. -- cgit v1.2.3