Fix: handle_conversion_specifier_std(): use `sizeof(PRI*64) - 1`
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 29 Mar 2019 22:05:54 +0000 (18:05 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 3 May 2019 22:19:39 +0000 (18:19 -0400)
`sizeof(PRIu64)`, for example, includes the terminating null character,
so what we want here is this size minus one.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
common/common.c

index 1c49a465ccfcee27ec228fa2c1862cbe8717fbe2..d261372d68e2c3d01ac267fa9f09cedfd74ecb51 100644 (file)
@@ -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;
        }
This page took 0.025395 seconds and 4 git commands to generate.