Tue Oct 31 08:12:11 2017 UTC ()
fix runtime abort when building with recent clang


(dbj)
diff -r1.17 -r1.18 pkgsrc/print/dvipsk/Makefile
diff -r1.14 -r1.15 pkgsrc/print/dvipsk/distinfo
diff -r0 -r1.1 pkgsrc/print/dvipsk/patches/patch-texk_dvipsk_color.c

cvs diff -r1.17 -r1.18 pkgsrc/print/dvipsk/Makefile (expand / switch to unified diff)

--- pkgsrc/print/dvipsk/Makefile 2017/09/06 16:49:29 1.17
+++ pkgsrc/print/dvipsk/Makefile 2017/10/31 08:12:11 1.18
@@ -1,17 +1,18 @@ @@ -1,17 +1,18 @@
1# $NetBSD: Makefile,v 1.17 2017/09/06 16:49:29 wiz Exp $ 1# $NetBSD: Makefile,v 1.18 2017/10/31 08:12:11 dbj Exp $
2 2
3DISTNAME= texlive-20170524-source 3DISTNAME= texlive-20170524-source
4PKGNAME= dvipsk-5.997 4PKGNAME= dvipsk-5.997
 5PKGREVISION= 1
5CATEGORIES= print 6CATEGORIES= print
6MASTER_SITES= ftp://tug.org/historic/systems/texlive/2017/ 7MASTER_SITES= ftp://tug.org/historic/systems/texlive/2017/
7EXTRACT_SUFX= .tar.xz 8EXTRACT_SUFX= .tar.xz
8 9
9MAINTAINER= minskim@NetBSD.org 10MAINTAINER= minskim@NetBSD.org
10HOMEPAGE= http://www.radicaleye.com/dvips.html 11HOMEPAGE= http://www.radicaleye.com/dvips.html
11COMMENT= DVI-to-PostScript translator 12COMMENT= DVI-to-PostScript translator
12 13
13BUILD_DEPENDS+= tex-texconfig-[0-9]*:../../print/tex-texconfig 14BUILD_DEPENDS+= tex-texconfig-[0-9]*:../../print/tex-texconfig
14DEPENDS+= tex-dvips>=2013:../../print/tex-dvips 15DEPENDS+= tex-dvips>=2013:../../print/tex-dvips
15 16
16EXTRACT_ELEMENTS= ${DISTNAME}/build-aux \ 17EXTRACT_ELEMENTS= ${DISTNAME}/build-aux \
17 ${DISTNAME}/texk/dvipsk 18 ${DISTNAME}/texk/dvipsk

cvs diff -r1.14 -r1.15 pkgsrc/print/dvipsk/distinfo (expand / switch to unified diff)

--- pkgsrc/print/dvipsk/distinfo 2017/06/20 20:50:50 1.14
+++ pkgsrc/print/dvipsk/distinfo 2017/10/31 08:12:11 1.15
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
1$NetBSD: distinfo,v 1.14 2017/06/20 20:50:50 markd Exp $ 1$NetBSD: distinfo,v 1.15 2017/10/31 08:12:11 dbj Exp $
2 2
3SHA1 (texlive-20170524-source.tar.xz) = 1c1383ddb1b871c6b8ce49a4ae3c1a33d454a7b6 3SHA1 (texlive-20170524-source.tar.xz) = 1c1383ddb1b871c6b8ce49a4ae3c1a33d454a7b6
4RMD160 (texlive-20170524-source.tar.xz) = a8430c19fe1727cf308fe03e5838105260c0d71e 4RMD160 (texlive-20170524-source.tar.xz) = a8430c19fe1727cf308fe03e5838105260c0d71e
5SHA512 (texlive-20170524-source.tar.xz) = 18c18940992ab94ce22e22ccd4ad798253ea14ac2ab296a10ea5e9a8da9f33989f2e2641b42b564d1d5fb53bd371da3e68726b676d706b469016ad146cd19daa 5SHA512 (texlive-20170524-source.tar.xz) = 18c18940992ab94ce22e22ccd4ad798253ea14ac2ab296a10ea5e9a8da9f33989f2e2641b42b564d1d5fb53bd371da3e68726b676d706b469016ad146cd19daa
6Size (texlive-20170524-source.tar.xz) = 63483372 bytes 6Size (texlive-20170524-source.tar.xz) = 63483372 bytes
 7SHA1 (patch-texk_dvipsk_color.c) = a10b27bb9ae7c97d832c648cd429f5d083282b6b

File Added: pkgsrc/print/dvipsk/patches/Attic/patch-texk_dvipsk_color.c
$NetBSD: patch-texk_dvipsk_color.c,v 1.1 2017/10/31 08:12:11 dbj Exp $

The strcpy stack checker in recent versions of clang get confused
and abort when it appears to copy past the end of the structure,
so be explicit about the variable structure field.

Reported upstream:
http://tug.org/pipermail/tex-k/2017-August/002797.html

--- texk/dvipsk/color.c.orig	2016-11-25 18:08:46.000000000 +0000
+++ texk/dvipsk/color.c
@@ -37,7 +37,7 @@ static struct colorpage {
    struct colorpage *next;
    integer boploc; /* we use the bop loc as a page indicator */
    char *bg;
-   char colordat[2];
+   char colordat[];
 } *colorhash[COLORHASH];
 static char *cstack, *csp, *cend, *bg;
 /*
@@ -216,7 +216,7 @@ bopcolor(int outtops)
       }
    } else {
       p = (struct colorpage *)mymalloc((integer)
-                  (strlen(cstack) + sizeof(struct colorpage) + MAXCOLORLEN));
+                  (strlen(cstack) + sizeof(struct colorpage) + MAXCOLORLEN + 2));
       p->next = colorhash[h];
       p->boploc = pageloc;
       strcpy(p->colordat, cstack);