openbsd-ports/net/queso/patches/patch-queso_c
avsm 41b58b5970 correct a nasty little typo in a string bound which a gives wrong value
(sizeof(DEVBUF-1)) -> (sizeof(DEVBUF)-1)

brad@ ok
2003-04-16 19:36:46 +00:00

133 lines
4.0 KiB
Plaintext

$OpenBSD: patch-queso_c,v 1.1 2003/04/16 19:36:46 avsm Exp $
--- queso.c.orig Tue Sep 22 21:35:43 1998
+++ queso.c Mon Apr 14 23:53:09 2003
@@ -58,19 +58,19 @@ char *DEVICE=NULL, DEVBUFF[255];
static char CFGFILE[255] = DFLT_CONFIG_FILE;
/*------------- Prototiping -----------------*/
-void debugtcp (unsigned long, tcprec);
+void debugtcp (u_int32_t, tcprec);
void usage (const char *);
int checkos (struct sockaddr_in, short);
/*------------- Print TCP HDR ---------------*/
void
-debugtcp (unsigned long myseq, tcprec tcp)
+debugtcp (u_int32_t myseq, tcprec tcp)
{
fprintf (stderr, "%d->%d S:%1d A:%s%lX W:%04X U:%X F: ",
ntohs (tcp.sport), ntohs (tcp.dport),
(tcp.seqnum?1:0),
tcp.acknum?"+":" ",
- (tcp.acknum?(unsigned long) ntohl (tcp.acknum)-myseq:0),
+ (unsigned long) (tcp.acknum?(u_int32_t) ntohl (tcp.acknum)-myseq:0),
ntohs (tcp.window), ntohs (tcp.urgentptr));
if (tcp.flags & URG)
@@ -142,12 +142,12 @@ usage (const char *progname)
typedef struct
{
- unsigned short set;
- unsigned long seq;
- unsigned long ack;
- unsigned short urg;
- unsigned short win;
- unsigned short flag;
+ u_int16_t set;
+ u_int32_t seq;
+ u_int32_t ack;
+ u_int16_t urg;
+ u_int16_t win;
+ u_int16_t flag;
}
OSRES;
@@ -158,12 +158,12 @@ check_os (struct sockaddr_in from, struc
{
spoofrec spoof;
tcprec tcp;
- unsigned short start, s;
+ u_int16_t start, s;
int n;
long timeout;
FILE *f;
char line[1024];
- unsigned long myseq;
+ u_int32_t myseq;
#ifdef PCAP
char fromtxt[16], desttxt[16];
char bpftxt[4096];
@@ -284,8 +284,8 @@ check_os (struct sockaddr_in from, struc
if ((f = fopen (CFGFILE, "r")))
{
char osname[256]; /* should be smaller than line[], 256 should suffice */
- unsigned short flag1 = 0, found = 0, linez = 0;
- unsigned short pn = 0, ps = 0, pa = 0, pw = 0, pf = 0, pu = 0;
+ u_int16_t flag1 = 0, found = 0, linez = 0;
+ u_int16_t pn = 0, ps = 0, pa = 0, pw = 0, pf = 0, pu = 0;
char *p;
while (fgets (line, sizeof (osname) - 1, f))
@@ -412,7 +412,7 @@ check_os (struct sockaddr_in from, struc
if (CONFIGDEBUG)
fprintf (stderr, " ** FAILED %d,%d,%d,%d,%02X != %ld,%ld,%d,%d,%02X\n",
ps, pa, pw, pu, pf,
- r[pn].seq,r[pn].ack,r[pn].win,r[pn].urg,r[pn].flag);
+ (unsigned long) r[pn].seq,(unsigned long) r[pn].ack,r[pn].win,r[pn].urg,r[pn].flag);
found = 0;
flag1 = 0;
continue;
@@ -483,9 +483,9 @@ check_os (struct sockaddr_in from, struc
if (r[pn].set)
{
fprintf ( f, "%d %ld %s",
- pn, r[pn].seq, (r[pn].ack==RANDOM_ACK?"R":((r[pn].ack>=ACK_HACK)?"+":"")) );
+ pn, (long) r[pn].seq, (r[pn].ack==RANDOM_ACK?"R":((r[pn].ack>=ACK_HACK)?"+":"")) );
if(r[pn].ack!=RANDOM_ACK)
- fprintf ( f, "%ld", (r[pn].ack>=ACK_HACK)?r[pn].ack-ACK_HACK:r[pn].ack);
+ fprintf ( f, "%ld", (long) /* shut up a warning */ ((r[pn].ack>=ACK_HACK)?r[pn].ack-ACK_HACK:r[pn].ack));
fprintf ( f, " %d %s\n", r[pn].win ? 1 : 0, line);
}
else
@@ -516,13 +516,13 @@ int
main (int argc, char *argv[])
{
struct sockaddr_in dest, from;
- unsigned short port;
+ u_int16_t port;
char *s, *p;
int c;
int accuracy;
int limit = 0;
int bits = 32; /* single host */
- unsigned long firsthost, lasthost, netmask, host;
+ u_int32_t firsthost, lasthost, netmask, host;
/*
* Unbuffer stdout and stderr
@@ -576,7 +576,7 @@ main (int argc, char *argv[])
Zzz = atoi (optarg);
break;
case 'i':
- strncpy(DEVBUFF,optarg,sizeof(DEVBUFF-1));
+ strncpy(DEVBUFF,optarg,sizeof(DEVBUFF)-1);
DEVICE=DEVBUFF;
break;
default:
@@ -652,7 +652,13 @@ main (int argc, char *argv[])
}
host = ntohl (dest.sin_addr.s_addr);
- netmask = ~(0xFFFFFFFFL >> bits);
+ netmask = 0xFFFFFFFFL;
+ if(bits >= 1){
+ netmask >>= 1;
+ bits--;
+ }
+ netmask >>= bits;
+ netmask = ~netmask;
/*-- WARNING: 32bit arquitectures have problems when bits==32 --*/
firsthost = (host & netmask) + 1;
lasthost = (host | ~(netmask)) - 1;