diff options
author | Guy Harris <guy@alum.mit.edu> | 2018-01-29 15:48:55 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2018-01-29 15:48:55 -0800 |
commit | c499612a7f1024a183d0200ef5f1ea7fba63a3e4 (patch) | |
tree | 5ffc65612e07d03e445e58a02d9e349c13eb0af7 /print-cnfp.c | |
parent | 1e120597d2cb5864d52ca99ca6e167f2454c3153 (diff) | |
download | tcpdump-c499612a7f1024a183d0200ef5f1ea7fba63a3e4.tar.gz |
Add nd_{v}snprintf() routines/wrappers.
Some versions of the MSVC runtime library have a non-C99-compliant
vsnprintf(), which we want to avoid. On Windows, use snprintf() and
vsnprintf() for VS 2015 and later, where they both exist in
C99-compliant forms, and wrap _{v}snprintf_s() otherwise (they're
guaranteed to do the null termination that we want).
Diffstat (limited to 'print-cnfp.c')
-rw-r--r-- | print-cnfp.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/print-cnfp.c b/print-cnfp.c index 17fdc859..badbea96 100644 --- a/print-cnfp.c +++ b/print-cnfp.c @@ -296,14 +296,14 @@ cnfp_v5_print(netdissect_options *ndo, const u_char *cp) EXTRACT_BE_U_4(nr->last_time)%1000); asbuf[0] = buf[0] = '\0'; - snprintf(buf, sizeof(buf), "/%u", EXTRACT_U_1(nr->src_mask)); - snprintf(asbuf, sizeof(asbuf), ":%u", + nd_snprintf(buf, sizeof(buf), "/%u", EXTRACT_U_1(nr->src_mask)); + nd_snprintf(asbuf, sizeof(asbuf), ":%u", EXTRACT_BE_U_2(nr->src_as)); ND_PRINT("\n %s%s%s:%u ", intoa(nr->src_ina.s_addr), buf, asbuf, EXTRACT_BE_U_2(nr->srcport)); - snprintf(buf, sizeof(buf), "/%u", EXTRACT_U_1(nr->dst_mask)); - snprintf(asbuf, sizeof(asbuf), ":%u", + nd_snprintf(buf, sizeof(buf), "/%u", EXTRACT_U_1(nr->dst_mask)); + nd_snprintf(asbuf, sizeof(asbuf), ":%u", EXTRACT_BE_U_2(nr->dst_as)); ND_PRINT("> %s%s%s:%u ", intoa(nr->dst_ina.s_addr), buf, asbuf, EXTRACT_BE_U_2(nr->dstport)); @@ -394,14 +394,14 @@ cnfp_v6_print(netdissect_options *ndo, const u_char *cp) EXTRACT_BE_U_4(nr->last_time)%1000); asbuf[0] = buf[0] = '\0'; - snprintf(buf, sizeof(buf), "/%u", EXTRACT_U_1(nr->src_mask)); - snprintf(asbuf, sizeof(asbuf), ":%u", + nd_snprintf(buf, sizeof(buf), "/%u", EXTRACT_U_1(nr->src_mask)); + nd_snprintf(asbuf, sizeof(asbuf), ":%u", EXTRACT_BE_U_2(nr->src_as)); ND_PRINT("\n %s%s%s:%u ", intoa(nr->src_ina.s_addr), buf, asbuf, EXTRACT_BE_U_2(nr->srcport)); - snprintf(buf, sizeof(buf), "/%u", EXTRACT_U_1(nr->dst_mask)); - snprintf(asbuf, sizeof(asbuf), ":%u", + nd_snprintf(buf, sizeof(buf), "/%u", EXTRACT_U_1(nr->dst_mask)); + nd_snprintf(asbuf, sizeof(asbuf), ":%u", EXTRACT_BE_U_2(nr->dst_as)); ND_PRINT("> %s%s%s:%u ", intoa(nr->dst_ina.s_addr), buf, asbuf, EXTRACT_BE_U_2(nr->dstport)); @@ -429,7 +429,7 @@ cnfp_v6_print(netdissect_options *ndo, const u_char *cp) } buf[0]='\0'; - snprintf(buf, sizeof(buf), "(%u<>%u encaps)", + nd_snprintf(buf, sizeof(buf), "(%u<>%u encaps)", (EXTRACT_BE_U_2(nr->flags) >> 8) & 0xff, (EXTRACT_BE_U_2(nr->flags)) & 0xff); ND_PRINT("tos %u, %u (%u octets) %s", |