fix runtime abort when building with recent clangdiff -r1.17 -r1.18 pkgsrc/print/dvipsk/Makefile
(dbj)
@@ -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 | |||
3 | DISTNAME= texlive-20170524-source | 3 | DISTNAME= texlive-20170524-source | |
4 | PKGNAME= dvipsk-5.997 | 4 | PKGNAME= dvipsk-5.997 | |
5 | PKGREVISION= 1 | |||
5 | CATEGORIES= print | 6 | CATEGORIES= print | |
6 | MASTER_SITES= ftp://tug.org/historic/systems/texlive/2017/ | 7 | MASTER_SITES= ftp://tug.org/historic/systems/texlive/2017/ | |
7 | EXTRACT_SUFX= .tar.xz | 8 | EXTRACT_SUFX= .tar.xz | |
8 | 9 | |||
9 | MAINTAINER= minskim@NetBSD.org | 10 | MAINTAINER= minskim@NetBSD.org | |
10 | HOMEPAGE= http://www.radicaleye.com/dvips.html | 11 | HOMEPAGE= http://www.radicaleye.com/dvips.html | |
11 | COMMENT= DVI-to-PostScript translator | 12 | COMMENT= DVI-to-PostScript translator | |
12 | 13 | |||
13 | BUILD_DEPENDS+= tex-texconfig-[0-9]*:../../print/tex-texconfig | 14 | BUILD_DEPENDS+= tex-texconfig-[0-9]*:../../print/tex-texconfig | |
14 | DEPENDS+= tex-dvips>=2013:../../print/tex-dvips | 15 | DEPENDS+= tex-dvips>=2013:../../print/tex-dvips | |
15 | 16 | |||
16 | EXTRACT_ELEMENTS= ${DISTNAME}/build-aux \ | 17 | EXTRACT_ELEMENTS= ${DISTNAME}/build-aux \ | |
17 | ${DISTNAME}/texk/dvipsk | 18 | ${DISTNAME}/texk/dvipsk |
@@ -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 | |||
3 | SHA1 (texlive-20170524-source.tar.xz) = 1c1383ddb1b871c6b8ce49a4ae3c1a33d454a7b6 | 3 | SHA1 (texlive-20170524-source.tar.xz) = 1c1383ddb1b871c6b8ce49a4ae3c1a33d454a7b6 | |
4 | RMD160 (texlive-20170524-source.tar.xz) = a8430c19fe1727cf308fe03e5838105260c0d71e | 4 | RMD160 (texlive-20170524-source.tar.xz) = a8430c19fe1727cf308fe03e5838105260c0d71e | |
5 | SHA512 (texlive-20170524-source.tar.xz) = 18c18940992ab94ce22e22ccd4ad798253ea14ac2ab296a10ea5e9a8da9f33989f2e2641b42b564d1d5fb53bd371da3e68726b676d706b469016ad146cd19daa | 5 | SHA512 (texlive-20170524-source.tar.xz) = 18c18940992ab94ce22e22ccd4ad798253ea14ac2ab296a10ea5e9a8da9f33989f2e2641b42b564d1d5fb53bd371da3e68726b676d706b469016ad146cd19daa | |
6 | Size (texlive-20170524-source.tar.xz) = 63483372 bytes | 6 | Size (texlive-20170524-source.tar.xz) = 63483372 bytes | |
7 | SHA1 (patch-texk_dvipsk_color.c) = a10b27bb9ae7c97d832c648cd429f5d083282b6b |
$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);