Page MenuHomeFreeBSD

D59556.id186317.diff
No OneTemporary

D59556.id186317.diff

diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c
--- a/sbin/ping/ping.c
+++ b/sbin/ping/ping.c
@@ -1109,7 +1109,7 @@
const u_char *icmp_data_raw;
ssize_t icmp_data_raw_len;
double triptime;
- int dupflag, i, j, recv_len;
+ int avail, dupflag, i, j, recv_len;
int8_t hlen;
uint16_t seq;
static int old_rrlen;
@@ -1258,9 +1258,11 @@
(void)printf("\nwrong data byte #%d should be 0x%x but was 0x%x",
i, *dp, *cp);
(void)printf("\ncp:");
+ avail = (int)MIN((ssize_t)datalen,
+ i + cc);
cp = (u_char*)(buf + hlen +
offsetof(struct icmp, icmp_data));
- for (i = 0; i < datalen; ++i, ++cp) {
+ for (i = 0; i < avail; ++i, ++cp) {
if ((i % 16) == 8)
(void)printf("\n\t");
(void)printf(" %2x", *cp);

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 11, 7:54 AM (9 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38680393
Default Alt Text
D59556.id186317.diff (776 B)

Event Timeline