diff options
-rw-r--r-- | networking/arping.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/networking/arping.c b/networking/arping.c index 782b61b64..4f1a2e2c5 100644 --- a/networking/arping.c +++ b/networking/arping.c | |||
@@ -71,7 +71,7 @@ static int send_pack(int sock, struct in_addr *src_addr, | |||
71 | { | 71 | { |
72 | int err; | 72 | int err; |
73 | struct timeval now; | 73 | struct timeval now; |
74 | unsigned char buf[256]; | 74 | RESERVE_CONFIG_UBUFFER(buf, 256); |
75 | struct arphdr *ah = (struct arphdr *) buf; | 75 | struct arphdr *ah = (struct arphdr *) buf; |
76 | unsigned char *p = (unsigned char *) (ah + 1); | 76 | unsigned char *p = (unsigned char *) (ah + 1); |
77 | 77 | ||
@@ -105,6 +105,7 @@ static int send_pack(int sock, struct in_addr *src_addr, | |||
105 | if (!(cfg&unicasting)) | 105 | if (!(cfg&unicasting)) |
106 | brd_sent++; | 106 | brd_sent++; |
107 | } | 107 | } |
108 | RELEASE_CONFIG_BUFFER(buf); | ||
108 | return err; | 109 | return err; |
109 | } | 110 | } |
110 | 111 | ||
@@ -456,12 +457,12 @@ int arping_main(int argc, char **argv) | |||
456 | 457 | ||
457 | while (1) { | 458 | while (1) { |
458 | sigset_t sset, osset; | 459 | sigset_t sset, osset; |
459 | unsigned char packet[4096]; | 460 | RESERVE_CONFIG_UBUFFER(packet, 4096); |
460 | struct sockaddr_ll from; | 461 | struct sockaddr_ll from; |
461 | socklen_t alen = sizeof(from); | 462 | socklen_t alen = sizeof(from); |
462 | int cc; | 463 | int cc; |
463 | 464 | ||
464 | if ((cc = recvfrom(s, packet, sizeof(packet), 0, | 465 | if ((cc = recvfrom(s, packet, 4096, 0, |
465 | (struct sockaddr *) &from, &alen)) < 0) { | 466 | (struct sockaddr *) &from, &alen)) < 0) { |
466 | perror("recvfrom"); | 467 | perror("recvfrom"); |
467 | continue; | 468 | continue; |
@@ -472,5 +473,6 @@ int arping_main(int argc, char **argv) | |||
472 | sigprocmask(SIG_BLOCK, &sset, &osset); | 473 | sigprocmask(SIG_BLOCK, &sset, &osset); |
473 | recv_pack(packet, cc, &from); | 474 | recv_pack(packet, cc, &from); |
474 | sigprocmask(SIG_SETMASK, &osset, NULL); | 475 | sigprocmask(SIG_SETMASK, &osset, NULL); |
476 | RELEASE_CONFIG_BUFFER(packet); | ||
475 | } | 477 | } |
476 | } | 478 | } |