- use RESERVE_CONFIG_BUFFER. For defconfig this gives:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 31 Mar 2006 18:13:42 +0000 (18:13 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 31 Mar 2006 18:13:42 +0000 (18:13 -0000)
   text    data     bss     dec     hex filename
   3627       4     120    3751     ea7 networking/arping.o.oorig
   3548       4      96    3648     e40 networking/arping.o.r14710
   3520       4      96    3620     e24 networking/arping.o

networking/arping.c

index 782b61b64a8b5289d59b525ad10b878850b1ad98..4f1a2e2c5a50e8ecd70365b0f826de7ba1798fa3 100644 (file)
@@ -71,7 +71,7 @@ static int send_pack(int sock, struct in_addr *src_addr,
 {
        int err;
        struct timeval now;
-       unsigned char buf[256];
+       RESERVE_CONFIG_UBUFFER(buf, 256);
        struct arphdr *ah = (struct arphdr *) buf;
        unsigned char *p = (unsigned char *) (ah + 1);
 
@@ -105,6 +105,7 @@ static int send_pack(int sock, struct in_addr *src_addr,
                if (!(cfg&unicasting))
                        brd_sent++;
        }
+       RELEASE_CONFIG_BUFFER(buf);
        return err;
 }
 
@@ -456,12 +457,12 @@ int arping_main(int argc, char **argv)
 
        while (1) {
                sigset_t sset, osset;
-               unsigned char packet[4096];
+               RESERVE_CONFIG_UBUFFER(packet, 4096);
                struct sockaddr_ll from;
                socklen_t alen = sizeof(from);
                int cc;
 
-               if ((cc = recvfrom(s, packet, sizeof(packet), 0,
+               if ((cc = recvfrom(s, packet, 4096, 0,
                                                   (struct sockaddr *) &from, &alen)) < 0) {
                        perror("recvfrom");
                        continue;
@@ -472,5 +473,6 @@ int arping_main(int argc, char **argv)
                sigprocmask(SIG_BLOCK, &sset, &osset);
                recv_pack(packet, cc, &from);
                sigprocmask(SIG_SETMASK, &osset, NULL);
+               RELEASE_CONFIG_BUFFER(packet);
        }
 }