1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
The following are patches against the standard dvi2tty distribution (at
least as of March of 1996, but it doesn't look like it's going to be
changing any time in the near future). The original code doesn't
null-terminate a string at several points, apparently relying on the
assumption that all memory will be zeroed. This is not the case on
several systems, most notably Linux. These patches will also clean up the
Makefile and add a make clean target.
To apply these patches, use:
patch < dvi2tty.patch
If you don't have patch on your system, you can obtain it from
prep.ai.mit.edu (or any mirror) in /pub/gnu; I highly recommend you
install it. Alternately, you can just make the below changes by hand
(there aren't very many).
Feel free to send me questions, other problems, corrections, and the like,
but please be aware that I am not the official maintainer of this package,
and although I use it I do not know a lot about the internals. I'll try
to help, but don't expect too much.
Russ Allbery
rra@cs.stanford.edu
--------------------------------------------------------------------------
--- dvi2tty/Makefile.orig Fri Mar 12 01:05:10 1993
+++ dvi2tty/Makefile Mon May 6 03:03:51 1996
@@ -6,17 +6,20 @@
# This Makefile does not work for MSDOS. Make your
# own one, or compile by hand.
#
-CFLAGS =
+CFLAGS = -O2
+CC = gcc
all: dvi2tty disdvi
-dvi2tty:dvi2tty.o dvistuff.o
- cc -o dvi2tty dvi2tty.o dvistuff.o
+dvi2tty: dvi2tty.o dvistuff.o
+ $(CC) $(CFLAGS) -o dvi2tty dvi2tty.o dvistuff.o
-disdvi:disdvi.c commands.h
- cc -o disdvi disdvi.o
+disdvi: disdvi.c commands.h
+ $(CC) $(CFLAGS) -o disdvi disdvi.c
dvi2tty.o: dvi2tty.c dvi2tty.h
dvistuff.o: dvistuff.c dvi2tty.h commands.h
+clean:
+ rm -f dvi2tty disdvi *.o
--- dvi2tty/dvistuff.c.orig Fri Mar 12 01:05:35 1993
+++ dvi2tty/dvistuff.c Mon May 6 04:48:49 1996
@@ -996,13 +996,14 @@
}
else
free(fnt->name); /* free old name */
- if ((name = (char *) malloc(namelen * sizeof(char))) == NULL) {
+ if ((name = (char *) malloc((namelen + 1) * sizeof(char))) == NULL) {
perror("fontdef");
exit(1);
}
for (i = 0; i < namelen; i++)
name[i] = get1();
+ name[namelen] = '\0';
fnt->name = name;
if (new) {
fnt->next = fonts;
--- dvi2tty/disdvi.c.orig Fri Mar 12 01:05:11 1993
+++ dvi2tty/disdvi.c Mon May 6 04:47:36 1996
@@ -348,13 +348,14 @@
}
else
free(fnt->name); /* free old name */
- if ((name = (char *) malloc(namelen * sizeof(char))) == NULL) {
+ if ((name = (char *) malloc((namelen + 1) * sizeof(char))) == NULL) {
perror("fontdef");
exit(1);
}
for (i = 0; i < namelen; i++)
name[i] = get1();
+ name[namelen] = '\0';
fnt->name = name;
if (new) {
fnt->next = fonts;
|