[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: