From 69851fffedf3e4a5fa2e24ba4366d56037bf0980 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Fri, 29 Mar 2019 18:05:54 -0400 Subject: [PATCH] Fix: handle_conversion_specifier_std(): use `sizeof(PRI*64) - 1` `sizeof(PRIu64)`, for example, includes the terminating null character, so what we want here is this size minus one. Signed-off-by: Philippe Proulx --- common/common.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common/common.c b/common/common.c index 1c49a465..d261372d 100644 --- a/common/common.c +++ b/common/common.c @@ -1335,27 +1335,27 @@ static inline void handle_conversion_specifier_std(char *buf, char **buf_ch, /* format (PRI*64) */ if (strncmp(fmt_ch, PRId64, sizeof(PRId64) - 1) == 0) { - fmt_ch += sizeof(PRId64); + fmt_ch += sizeof(PRId64) - 1; BUF_STD_APPEND_SINGLE_ARG(int64_t); goto update_rw_fmt; } else if (strncmp(fmt_ch, PRIu64, sizeof(PRIu64) - 1) == 0) { - fmt_ch += sizeof(PRIu64); + fmt_ch += sizeof(PRIu64) - 1; BUF_STD_APPEND_SINGLE_ARG(uint64_t); goto update_rw_fmt; } else if (strncmp(fmt_ch, PRIx64, sizeof(PRIx64) - 1) == 0) { - fmt_ch += sizeof(PRIx64); + fmt_ch += sizeof(PRIx64) - 1; BUF_STD_APPEND_SINGLE_ARG(uint64_t); goto update_rw_fmt; } else if (strncmp(fmt_ch, PRIX64, sizeof(PRIX64) - 1) == 0) { - fmt_ch += sizeof(PRIX64); + fmt_ch += sizeof(PRIX64) - 1; BUF_STD_APPEND_SINGLE_ARG(uint64_t); goto update_rw_fmt; } else if (strncmp(fmt_ch, PRIo64, sizeof(PRIo64) - 1) == 0) { - fmt_ch += sizeof(PRIo64); + fmt_ch += sizeof(PRIo64) - 1; BUF_STD_APPEND_SINGLE_ARG(uint64_t); goto update_rw_fmt; } else if (strncmp(fmt_ch, PRIi64, sizeof(PRIi64) - 1) == 0) { - fmt_ch += sizeof(PRIi64); + fmt_ch += sizeof(PRIi64) - 1; BUF_STD_APPEND_SINGLE_ARG(int64_t); goto update_rw_fmt; } -- 2.34.1