[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[texlive-bin] 01/04: fix for upmendex segfaults (upstream svn 41497 and 41498)



This is an automated email from the git hooks/post-receive script.

preining pushed a commit to branch master
in repository texlive-bin.

commit ea062d7aac914d9f3c9dfcd90d67943f011f131b
Author: Norbert Preining <preining@debian.org>
Date:   Mon Jun 20 10:18:01 2016 +0900

    fix for upmendex segfaults (upstream svn 41497 and 41498)
---
 debian/changelog                                   |   6 +
 debian/patches/series                              |   1 +
 .../upstream-svn41497-svn41498-fix-upmendex        | 140 +++++++++++++++++++++
 3 files changed, 147 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 0a15d5e..aab9ebf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+texlive-bin (2016.20160513.41080-4) UNRELEASED; urgency=medium
+
+  * fix for upmendex segfaults (upstream svn 41497 and 41498)
+
+ -- Norbert Preining <preining@debian.org>  Mon, 20 Jun 2016 10:17:24 +0900
+
 texlive-bin (2016.20160513.41080-3) unstable; urgency=medium
 
   * fix pdftex segfault on pdfmatch invocations (upstream svn 41418)
diff --git a/debian/patches/series b/debian/patches/series
index f9b7eec..8752f27 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -19,3 +19,4 @@ SDE-support-for-luatex
 upstream-svn41295-fix-ptex-checkbox
 upstream-svn41417-rename-sdetp
 upstream-svn41418-pdftex-match-fix
+upstream-svn41497-svn41498-fix-upmendex -p3
diff --git a/debian/patches/upstream-svn41497-svn41498-fix-upmendex b/debian/patches/upstream-svn41497-svn41498-fix-upmendex
new file mode 100644
index 0000000..fe55581
--- /dev/null
+++ b/debian/patches/upstream-svn41497-svn41498-fix-upmendex
@@ -0,0 +1,140 @@
+diff --git a/Build/source/texk/README b/Build/source/texk/README
+index 98c16d8..e429b23 100644
+--- a/Build/source/texk/README
++++ b/Build/source/texk/README
+@@ -98,7 +98,7 @@ ttf2pk2 - maintained here, by us
+ 
+ ttfdump - ?
+ 
+-upmendex 0.50 - 
++upmendex 0.51 - by Takuji Tanaka
+   http://www.ctan.org/pkg/upmendex
+   http://www.t-lab.opal.ne.jp/tex/uptex_en.html
+ 
+diff --git a/Build/source/texk/upmendex/ChangeLog b/Build/source/texk/upmendex/ChangeLog
+index e02a843..d3d014f 100644
+--- a/Build/source/texk/upmendex/ChangeLog
++++ b/Build/source/texk/upmendex/ChangeLog
+@@ -1,3 +1,9 @@
++2016-06-19  TANAKA Takuji  <ttk@t-lab.opal.ne.jp>
++
++	* version 0.51  Beta version.
++	* fwrite.c: Fix bug of option "hanzi_head" in style file.
++	Thanks to Dr. Werner Fink.
++
+ 2016-02-12  Karl Berry  <karl@tug.org>
+ 
+ 	* configure.ac (KPSE_CXX_HACK): add to avoid usual libstdc++.so
+diff --git a/Build/source/texk/upmendex/fwrite.c b/Build/source/texk/upmendex/fwrite.c
+index 75ae159..a54b5dd 100644
+--- a/Build/source/texk/upmendex/fwrite.c
++++ b/Build/source/texk/upmendex/fwrite.c
+@@ -67,33 +67,38 @@ static inline int SAPPENDF(char *buf, const char *format, ...)
+ 
+ static void fprint_uchar(FILE *fp, const UChar *a, const int mode, const int len)
+ {
+-	int k;
+-	char str[15], *ret;
+-	UChar istr[5];
++	char str[3*INITIALLENGTH+1];
++	UChar istr[INITIALLENGTH];
+ 	int olen, wclen;
+ 	UErrorCode perr;
+ 
+ 	if (len<0) {
+-		for (k=0; a[k] || k<4; k++) istr[k]=a[k];
+-		wclen=k;
++		u_strcpy(istr,a);
++		wclen=u_strlen(istr);
+ 	} else {
+-		wclen = is_surrogate_pair(a) ? 2 : 1;
++		wclen=is_surrogate_pair(a) ? 2 : 1;
+ 			      istr[0]=a[0];
+ 		if (wclen==2) istr[1]=a[1];
++		istr[wclen]=L'\0';
+ 	}
+-	istr[wclen]=L'\0';
+ 	if (mode==M_TO_UPPER) {
+-		perr = U_ZERO_ERROR;
+-		u_strToUpper(istr,5,istr,wclen,"",&perr);
++		perr=U_ZERO_ERROR;
++		olen=u_strToUpper(istr,INITIALLENGTH,istr,wclen,"",&perr);
+ 	} else if (mode==M_TO_LOWER) {
+-		perr = U_ZERO_ERROR;
+-		u_strToLower(istr,5,istr,wclen, istr[0]==0x130&&turkish_i?"tr":"", &perr);
++		perr=U_ZERO_ERROR;
++		olen=u_strToLower(istr,INITIALLENGTH,istr,wclen, istr[0]==0x130&&turkish_i?"tr":"", &perr);
+ 	} else if (mode==M_TO_TITLE) {
+-		perr = U_ZERO_ERROR;
+-		u_strToTitle(istr,5,istr,wclen,NULL,"",&perr);
+-	}
+-	perr = U_ZERO_ERROR;
+-	ret = u_strToUTF8(str, 15, &olen, istr, wclen, &perr);
++		perr=U_ZERO_ERROR;
++		olen=u_strToTitle(istr,INITIALLENGTH,istr,wclen,NULL,"",&perr);
++	} else
++		olen=wclen;
++	if (olen>INITIALLENGTH) {
++		warn_printf(efp, "\nWarning, Too long (%d) header.\n", olen);
++		wclen=INITIALLENGTH;
++	} else
++		wclen=olen;
++	perr=U_ZERO_ERROR;
++	u_strToUTF8(str, 3*INITIALLENGTH+1, &olen, istr, wclen, &perr);
+ 	fprintf(fp,"%s",str);
+ }
+ 
+@@ -844,7 +849,7 @@ static int initial_cmp_char(UChar *ini, UChar ch)
+ static int init_hanzi_header(void)
+ {
+ 	UChar strX[2],*pch0,*pch1;
+-	int k, hzmode;
++	int k, hzmode, len;
+ 	struct hanzi_index *hz_idx_init;
+ 
+ 	strX[0]=0x5B57;  strX[1]=L'\0';
+@@ -878,21 +883,18 @@ static int init_hanzi_header(void)
+ 	for (k=0;k<hz_index_len;k++) {
+ 		if (u_strlen(pch0)==0) break;
+ 		if ((pch1=u_strchr(pch0,L';'))>0) {
+-			if (pch1-pch0>=INITIALLENGTH) {
+-				warn_printf(efp, "\nWarning, Too long hanzi header.\n");
+-				break;
+-			}
+-			u_strncpy(hz_index[k].idx,pch0,pch1-pch0);
+-			hz_index[k].idx[pch1-pch0]=L'\0';
+-			pch0=pch1+1;
++			len=pch1-pch0;
+ 		} else {
+-			if (u_strlen(pch0)>=INITIALLENGTH) {
+-				warn_printf(efp, "\nWarning, Too long hanzi header.\n");
+-				break;
+-			}
+-			u_strcpy(hz_index[k].idx,pch0);
+-			break;
++			len=u_strlen(pch0);
++		}
++		if (len>=INITIALLENGTH) {
++			warn_printf(efp, "\nWarning, Too long (%d) hanzi header.\n", len);
++			len=INITIALLENGTH-1;
+ 		}
++		u_strncpy(hz_index[k].idx,pch0,len);
++		hz_index[k].idx[len]=L'\0';
++		if (pch1>0) pch0=pch1+1;
++		else break;
+ 	}
+ 
+ 	return hzmode;
+diff --git a/Build/source/texk/upmendex/main.c b/Build/source/texk/upmendex/main.c
+index 6b2d689..eb5a68d 100644
+--- a/Build/source/texk/upmendex/main.c
++++ b/Build/source/texk/upmendex/main.c
+@@ -19,7 +19,7 @@ char *styfile,*idxfile[256],*indfile,*dicfile,*logfile;
+ #endif
+ KpathseaSupportInfo kp_ist,kp_dict;
+ 
+-#define VERSION "version 0.50"
++#define VERSION "version 0.51"
+ 
+ int main(int argc, char **argv)
+ {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-tex/texlive-bin.git


Reply to: