texlive[46693] Build/source/texk/dvipsk: avoid ersatz array as last
commits+karl at tug.org
commits+karl at tug.org
Wed Feb 21 01:19:50 CET 2018
Revision: 46693
http://tug.org/svn/texlive?view=revision&revision=46693
Author: karl
Date: 2018-02-21 01:19:50 +0100 (Wed, 21 Feb 2018)
Log Message:
-----------
avoid ersatz array as last struct member
Modified Paths:
--------------
trunk/Build/source/texk/dvipsk/ChangeLog
trunk/Build/source/texk/dvipsk/color.c
trunk/Build/source/texk/dvipsk/dospecial.c
trunk/Build/source/texk/dvipsk/dvips.h
trunk/Build/source/texk/dvipsk/header.c
Modified: trunk/Build/source/texk/dvipsk/ChangeLog
===================================================================
--- trunk/Build/source/texk/dvipsk/ChangeLog 2018-02-21 00:02:19 UTC (rev 46692)
+++ trunk/Build/source/texk/dvipsk/ChangeLog 2018-02-21 00:19:50 UTC (rev 46693)
@@ -1,3 +1,12 @@
+2018-02-20 Akira Kakuto <kakuto at fuk.kindai.ac.jp>
+
+ * color.c (colorpage),
+ * dospecial.c (bangspecial),
+ * dvips.h (header_list):
+ don't use ersatz array as last struct member; change usage.
+ Reported (implicitly, as part of)
+ https://trac.macports.org/ticket/53974
+
2018-01-27 Hironobu Yamashita <h.y.acetaminophen at gmail.com>
* tfmload.c, dvips.h: Support new JFM spec (3-byte characters
Modified: trunk/Build/source/texk/dvipsk/color.c
===================================================================
--- trunk/Build/source/texk/dvipsk/color.c 2018-02-21 00:02:19 UTC (rev 46692)
+++ trunk/Build/source/texk/dvipsk/color.c 2018-02-21 00:19:50 UTC (rev 46693)
@@ -37,7 +37,7 @@
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;
/*
@@ -84,6 +84,7 @@
for (i=0; i<COLORHASH; i++) {
for (p=colorhash[i]; p; p = q) {
q = p->next;
+ free(p->colordat);
free(p);
}
colorhash[i] = 0;
@@ -216,7 +217,8 @@
}
} else {
p = (struct colorpage *)mymalloc((integer)
- (strlen(cstack) + sizeof(struct colorpage) + MAXCOLORLEN));
+ (sizeof(struct colorpage)));
+ p->colordat = mymalloc(strlen(cstack) + MAXCOLORLEN + 2);
p->next = colorhash[h];
p->boploc = pageloc;
strcpy(p->colordat, cstack);
Modified: trunk/Build/source/texk/dvipsk/dospecial.c
===================================================================
--- trunk/Build/source/texk/dvipsk/dospecial.c 2018-02-21 00:02:19 UTC (rev 46692)
+++ trunk/Build/source/texk/dvipsk/dospecial.c 2018-02-21 00:19:50 UTC (rev 46693)
@@ -24,7 +24,7 @@
struct bangspecial {
struct bangspecial *next;
- char actualstuff[1]; /* more space will actually be allocated */
+ char *actualstuff;
} *bangspecials = NULL;
void
@@ -556,8 +556,8 @@
{
register struct bangspecial *q;
p++;
- q = (struct bangspecial *)mymalloc((integer)
- (sizeof(struct bangspecial) + strlen(p)));
+ q = (struct bangspecial *)mymalloc((integer)(sizeof(struct bangspecial)));
+ q->actualstuff = mymalloc(strlen(p) + 1);
strcpy(q->actualstuff, p);
q->next = bangspecials;
bangspecials = q;
Modified: trunk/Build/source/texk/dvipsk/dvips.h
===================================================================
--- trunk/Build/source/texk/dvipsk/dvips.h 2018-02-21 00:02:19 UTC (rev 46692)
+++ trunk/Build/source/texk/dvipsk/dvips.h 2018-02-21 00:19:50 UTC (rev 46693)
@@ -1,5 +1,5 @@
/* $Id$
- * Copyright 1986-2016 Tomas Rokicki.
+ * Copyright 1986-2018 Tomas Rokicki.
* This is dvips, a freely redistributable PostScript driver
* for dvi files. You may freely use, modify and/or distribute this
* program or any portion thereof.
@@ -251,7 +251,7 @@
const char *Hname;
char *precode;
char *postcode;
- char name[1];
+ char *name;
};
/*
* Some machines define putlong in their library.
Modified: trunk/Build/source/texk/dvipsk/header.c
===================================================================
--- trunk/Build/source/texk/dvipsk/header.c 2018-02-21 00:02:19 UTC (rev 46692)
+++ trunk/Build/source/texk/dvipsk/header.c 2018-02-21 00:19:50 UTC (rev 46693)
@@ -39,8 +39,8 @@
for (p = *what; p != NULL; p = p->next)
if (strcmp(p->name, s)==0)
return 0;
- q = (struct header_list *)mymalloc((integer)(sizeof(struct header_list)
- + strlen(s)));
+ q = (struct header_list *)mymalloc((integer)(sizeof(struct header_list)));
+ q->name = mymalloc(strlen(s) + 1);
q->Hname = infont;
q->next = NULL;
q->precode = pre;
More information about the tex-live-commits
mailing list