openbsd-ports/security/parse/patches/patch-ac
2002-02-25 03:08:20 +00:00

169 lines
4.0 KiB
Plaintext

--- display.c.orig Wed Nov 6 17:59:38 1996
+++ display.c Sun Feb 24 22:01:59 2002
@@ -27,7 +27,10 @@
*/
#include <stdio.h>
-#include <alloca.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <ctype.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
@@ -40,6 +43,7 @@
#include <netinet/ip_icmp.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>
+#include <arpa/inet.h>
#include <sgtty.h>
@@ -59,8 +63,10 @@
static void write_stoc(); /* Server to Client */
static void initialize_screen(); /* Clear screen, setup windows, etc */
static void dump_handler();
+extern void cleanup_output();
extern int ignore_user;
+void
display_connection(input_filename, con_id)
char *input_filename;
int con_id;
@@ -108,7 +114,6 @@
}
pcap_close(pcp);
- return;
}
char init_user=0;
@@ -136,15 +141,13 @@
struct ip *ip;
struct tcphdr *tcph;
u_char *abuf, *abuf2;
- int flags, length;
+ int length;
static struct timeval last_time;
static int offset_set=0;
- struct timeval ct;
fd_set fdset;
struct timeval timeout;
char inchar;
- char outbuf[64];
/* tjk timing */
static struct timeval session_start, cur_delta;
@@ -218,14 +221,14 @@
}
for (;;) {
- int sel_out;
struct timeval t1,t2,t3;
bcopy(subtract_timeval(&pkth->ts, &session_start),
&t1, sizeof(struct timeval));
bcopy(subtract_timeval(&pkth->ts, &last_time),
&t2, sizeof(struct timeval));
- last_time = pkth->ts;
+ last_time.tv_sec = pkth->ts.tv_sec;
+ last_time.tv_usec = pkth->ts.tv_usec;
timeout = t2;
@@ -477,12 +480,10 @@
if (length > 46) {
len = 46;
- strncpy(s, p+(length-46), len); /* Get last 46 characters */
- *(s+len)=0;
+ strlcpy(s, p+(length-46), len); /* Get last 46 characters */
} else {
len = length;
- strncpy(s, p, len);
- *(s+len)=0;
+ strlcpy(s, p, len);
}
mode=0;
@@ -561,8 +562,7 @@
if (len == 46) {
printf("\033[26;34H\033[7m%s\033[0m", new_buffer);
former_buflen = 46;
- strncpy(former_buffer, printable, len);
- *(former_buffer+len)=0;
+ strlcpy(former_buffer, printable, len);
} else {
if ((former_buflen + len) > 46) {
diff = (former_buflen + len - 46);
@@ -572,17 +572,14 @@
printf("\033[26;%dH", 34+former_buflen-(diff));
printf("\033[7m%s\033[0m", new_buffer);
former_buflen = 46;
- strncpy(temp, former_buffer+diff, 46-diff);
- *(temp+(46-diff))=0;
- strcat(temp, printable, len);
- *(temp+46)=0;
+ strlcpy(temp, former_buffer+diff, 46-diff);
+ strlcat(temp, printable, len);
strcpy(former_buffer, temp);
} else {
printf("\033[26;%dH", 34+former_buflen);
printf("\033[7m%s\033[0m", new_buffer);
former_buflen += len;
- strncat(former_buffer, printable, len);
- *(former_buffer+former_buflen)=0;
+ strlcat(former_buffer, printable, len);
}
}
}
@@ -600,7 +597,7 @@
char *p;
int length;
{
- char *x, *y, *beg, value;
+ char *x, value, *beg = NULL;
int i;
int redraw_status=0;
enum { STATE_NOTHING, STATE_ESCAPE, STATE_BRACKET, STATE_ARGUMENTS } state;
@@ -741,6 +738,7 @@
static FILE *sfp=NULL, *cfp=NULL;
static char dumpbase[1024];
+void
dump_connection(input_filename, con_id)
char *input_filename;
int con_id;
@@ -754,7 +752,8 @@
printf("Enter basename for output files (server side will append '.srv', client '.cli'\n");
printf(":");
fflush(stdout);
- gets(dumpbase);
+ fgets(dumpbase, sizeof(dumpbase), stdin);
+ strtok(dumpbase, "\r\n");
if ((pcp = pcap_open_offline(input_filename, ebuf)) == NULL) {
fprintf(stderr, "Can't open input file: %s\n", ebuf);
@@ -798,8 +797,6 @@
printf("NOTE: You may want to run:\n");
printf("tr -d '\\015' <basename.srv - and/or -\n");
printf("tr '\\015' '\\012' <basename.cli\n");
-
- return;
}
static void
@@ -812,9 +809,7 @@
struct ip *ip;
struct tcphdr *tcph;
u_char *abuf, *abuf2;
- int flags, length;
- char inchar;
- char outbuf[64];
+ int length;
char buf[1024], buf2[1024];
if (sfp==NULL) {