[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.
        http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602566

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.  */ 
 
-void
-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) {
     count++;
     XRETALLOC (*list, count + 1, const_string);
     (*list)[count - 1] = s;
   }
-  va_end (ap);
   (*list)[count] = NULL;
 }
 
+void
+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)
 void
@@ -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);
 }
 #endif

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

Thanks a lot and all the best

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