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