SecBSD's official ports repository
This commit is contained in:
commit
2c0afcbbf3
64331 changed files with 5339189 additions and 0 deletions
83
net/bing/patches/patch-bing_c
Normal file
83
net/bing/patches/patch-bing_c
Normal file
|
@ -0,0 +1,83 @@
|
|||
--- bing.c.orig Fri Jan 19 19:28:53 2001
|
||||
+++ bing.c Mon Aug 6 19:33:05 2012
|
||||
@@ -170,6 +170,7 @@ static char rcsid[] = "$Id: bing.c,v 1.16.2.1 2001/01/
|
||||
#include <netdb.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
@@ -755,7 +756,7 @@ int pr_pack(buf, cc, from)
|
||||
static int old_rrlen;
|
||||
static char old_rr[MAX_IPOPTLEN];
|
||||
struct ip *ip;
|
||||
- struct timeval tv, *tp;
|
||||
+ struct timeval tv, tv2, *tp;
|
||||
double triptime;
|
||||
int hlen, dupflag;
|
||||
|
||||
@@ -798,9 +799,12 @@ int pr_pack(buf, cc, from)
|
||||
cc -= hlen;
|
||||
icp = (struct icmp *)(buf + hlen);
|
||||
if (icp->icmp_type == ICMP_ECHOREPLY) {
|
||||
+ char *tmp;
|
||||
if (icp->icmp_id != ident)
|
||||
return -1; /* 'Twas not our ECHO */
|
||||
- tp = (struct timeval *)ICMP_TO_DATA(icp);
|
||||
+ tmp = (char *)ICMP_TO_DATA(icp);
|
||||
+ memcpy(&tv2, tmp, sizeof(tv2));
|
||||
+ tp = &tv2;
|
||||
tvsub(&tv, tp);
|
||||
triptime = tv_usval(&tv);
|
||||
|
||||
@@ -1231,17 +1235,30 @@ int main(argc, argv)
|
||||
struct hoststats *hs1, *hs2;
|
||||
int ntrans, nloops, bits;
|
||||
int i;
|
||||
- int ch, hold, recv_packlen, preload;
|
||||
+ int ch, hold = 1, recv_packlen, preload;
|
||||
u_char *datap, *recv_packet;
|
||||
- char *target1, *target2, *malloc();
|
||||
+ char *target1, *target2;
|
||||
u_char ttl, loop;
|
||||
#ifdef IP_OPTIONS
|
||||
char rspace[3 + 4 * NROUTES + 1]; /* record route space */
|
||||
#endif
|
||||
-
|
||||
hs1 = &hoststats1;
|
||||
hs2 = &hoststats2;
|
||||
|
||||
+ if (!(proto = getprotobyname("icmp"))) {
|
||||
+ (void)fprintf(stderr, "bing: unknown protocol icmp.\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
+ if ((s = socket(AF_INET, SOCK_RAW, proto->p_proto)) < 0) {
|
||||
+ perror("bing: socket");
|
||||
+ exit(1);
|
||||
+ }
|
||||
+ /* Revoke privileges */
|
||||
+ if (seteuid(getuid()) == -1 || setuid(getuid()) == -1) {
|
||||
+ err(1, "unable to drop permissions");
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
preload = 0;
|
||||
datap = &outpack[8 + sizeof(struct timeval)];
|
||||
while ((ch = getopt(argc, argv, "I:LRc:dDe:fh:i:l:nPp:rS:s:t:vVwz")) != EOF)
|
||||
@@ -1398,15 +1415,6 @@ int main(argc, argv)
|
||||
|
||||
ident = getpid() & 0xFFFF;
|
||||
|
||||
- if (!(proto = getprotobyname("icmp"))) {
|
||||
- (void)fprintf(stderr, "bing: unknown protocol icmp.\n");
|
||||
- exit(1);
|
||||
- }
|
||||
- if ((s = socket(AF_INET, SOCK_RAW, proto->p_proto)) < 0) {
|
||||
- perror("bing: socket");
|
||||
- exit(1);
|
||||
- }
|
||||
- hold = 1;
|
||||
if (options & F_SO_DEBUG)
|
||||
(void)setsockopt(s, SOL_SOCKET, SO_DEBUG, (char *)&hold,
|
||||
sizeof(hold));
|
Loading…
Add table
Add a link
Reference in a new issue