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

another freeze exception, this time for texlive-bin 2009-8

Dear release managers,

again I would like to ask for a freez exception, this time for
telxive-bin 2009-8. The only change is the following quilt patch added
to fix segfaults on mipsel (and probably other archs).
This is the grave bug #602566.

The patch was submitted to the bug report and is already included
upstream (texlive svn repository rev 20390, changelog entry of 
upstream TeX Live:
2010-11-10  Mathias Kende  <mathias@kende.fr>

        * tex-file.c (kpathsea_set_suffixes_va_list): new fn.
        (kpse_set_suffixes, kpathsea_set_suffixes): call it.
        Avoids passing variable argument list, which is not portable.

The bug is described in the bug report as follows:
> The bug seems to come from libkpathsea5 and not from dvi2ps. It exists
> on all platforms (at least also on AMD64) but does not trigger a
> segfault. It comes from the kpse_set_suffixes function in the
> libkpathsea compatibility API which calls the kpathsea_set_suffixes
> function and passes to it its variable list of arguments. This operation
> is invalid in C.

The full bug is:
 texk/kpathsea/tex-file.c |   21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

Index: texlive-bin-2009/texk/kpathsea/tex-file.c
--- texlive-bin-2009.orig/texk/kpathsea/tex-file.c	2010-11-10 10:56:14.000000000 +0900
+++ texlive-bin-2009/texk/kpathsea/tex-file.c	2010-11-10 10:56:28.000000000 +0900
@@ -321,14 +321,13 @@
 /* Some file types have more than one suffix, and sometimes it is
    convenient to modify the list of searched suffixes.  */ 
-kpathsea_set_suffixes (kpathsea kpse, kpse_file_format_type format,
-  boolean alternate, ...)
+static void
+kpathsea_set_suffixes_va_list(kpathsea kpse, kpse_file_format_type format,
+  boolean alternate, va_list ap)
   const_string **list;
   const_string s;
   int count = 0;
-  va_list ap;
   if (alternate) {
       list = &(kpse->format_info[format].alt_suffix);
@@ -336,16 +335,24 @@
       list = &(kpse->format_info[format].suffix);
-  va_start (ap, alternate);
   while ((s = va_arg (ap, string)) != NULL) {
     XRETALLOC (*list, count + 1, const_string);
     (*list)[count - 1] = s;
-  va_end (ap);
   (*list)[count] = NULL;
+kpathsea_set_suffixes (kpathsea kpse, kpse_file_format_type format,
+  boolean alternate, ...)
+  va_list ap;
+  va_start (ap, alternate);
+  kpathsea_set_suffixes_va_list (kpse, format, alternate, ap);
+  va_end (ap);
 #if defined (KPSE_COMPAT_API)
@@ -354,7 +361,7 @@
   va_list ap;
   va_start (ap, alternate);
-  kpathsea_set_suffixes (kpse_def, format, alternate, ap);
+  kpathsea_set_suffixes_va_list (kpse_def, format, alternate, ap);
   va_end (ap);

I would like to ask for freeze exception for this package.

Thanks a lot and all the best

Norbert Preining            preining@{jaist.ac.jp, logic.at, debian.org}
JAIST, Japan                                 TeX Live & Debian Developer
DSA: 0x09C5B094   fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
Far out in the uncharted backwaters of the unfashionable
end of the western spiral arm of the Galaxy lies a small
unregarded yellow sun.
                 --- Douglas Adams, The Hitchhikers Guide to the Galaxy

Reply to: