summaryrefslogtreecommitdiff
path: root/print/mpage/files/patch-post_c
diff options
context:
space:
mode:
authorKris Kennaway <kris@FreeBSD.org>2003-06-13 21:36:31 +0000
committerKris Kennaway <kris@FreeBSD.org>2003-06-13 21:36:31 +0000
commit9a6dbead976c15f939936ac32c50c7d38a5a6a71 (patch)
tree0118b3c48df9aada08a0f2fdd67b90cd9a4c8ff0 /print/mpage/files/patch-post_c
parentUse proxy/socks settings when registering setiathome (diff)
Be more careful with string buffers and temporary files. Bump PORTREVISION.
Obtained from: OpenBSD
Notes
Notes: svn path=/head/; revision=82956
Diffstat (limited to 'print/mpage/files/patch-post_c')
-rw-r--r--print/mpage/files/patch-post_c73
1 files changed, 73 insertions, 0 deletions
diff --git a/print/mpage/files/patch-post_c b/print/mpage/files/patch-post_c
new file mode 100644
index 000000000000..4e54394f4af0
--- /dev/null
+++ b/print/mpage/files/patch-post_c
@@ -0,0 +1,73 @@
+$OpenBSD: patch-post_c,v 1.2 2002/11/13 17:15:49 naddy Exp $
+--- post.c.orig Wed Oct 16 23:45:54 2002
++++ post.c Wed Nov 13 18:04:56 2002
+@@ -353,6 +353,7 @@ ps_copyprolog(fd, outfd)
+ FILE *fd;
+ FILE *outfd;
+ {
++ size_t len;
+
+ Debug(DB_PSDOC, "%%ps_copyprolog: adding mpage prolog\n", 0);
+ if (!have_showsheet) {
+@@ -399,15 +400,17 @@ ps_copyprolog(fd, outfd)
+ */
+ if (tex1)
+ free(tex1);
+- tex1 = malloc(strlen(currline)+1);
+- strcpy(tex1, currline);
++ len = strlen(currline)+1;
++ tex1 = malloc(len);
++ (void)strlcpy(tex1, currline, len);
+ fprintf(outfd, "%s", currline);
+
+ fgets(currline, LINESIZE-1, fd);
+ if (tex2)
+ free(tex2);
+- tex2 = malloc(strlen(currline)+1);
+- strcpy(tex2, currline);
++ len = strlen(currline)+1;
++ tex2 = malloc(len);
++ (void)strlcpy(tex2, currline, len);
+ }
+ }
+ fprintf(outfd, "%s", currline);
+@@ -432,7 +435,7 @@ ps_roff_copyprolog(fd, outfd)
+ /* if (strcmp(currline, "xi\n") == 0) */
+ if (strstr(currline, "xi\n")) {
+ fprintf(outfd, "%%%s", currline);
+- strcpy(ps_roff_xi, currline);
++ (void)strlcpy(ps_roff_xi, currline, sizeof(ps_roff_xi));
+ }
+ else if (strncmp(currline, "%%Page:", 7) == 0) {
+ fprintf(outfd, "/p { } def\n");
+@@ -1013,6 +1016,8 @@ post_one_line(line, fd, outfd, indoc, fl
+ int * indoc;
+ int flush_page;
+ {
++ size_t len;
++
+ if (strncmp(line, "%%BeginDocument", 15) == 0) {
+ (*indoc)++;
+ }
+@@ -1063,15 +1068,17 @@ post_one_line(line, fd, outfd, indoc, fl
+ */
+ if (tex1)
+ free(tex1);
+- tex1 = malloc(strlen(line)+1);
+- strcpy(tex1, line);
++ len = strlen(line)+1;
++ tex1 = malloc(len);
++ (void)strlcpy(tex1, line, len);
+ fprintf(outfd, "%s", line);
+ flush_page ? memgets(line, LINESIZE-1) :
+ fgets(line, LINESIZE-1, fd);
+ if (tex2)
+ free(tex2);
+- tex2 = malloc(strlen(line)+1);
+- strcpy(tex2, line);
++ len = strlen(line)+1;
++ tex2 = malloc(len);
++ (void)strlcpy(tex2, line, len);
+ }
+ }
+ }