Hi,

The attached file is the updated diff for my apertium 3.0.7+1-1.1 NMU. The
associated changelog entry is:

 apertium (3.0.7+1-1.1) unstable; urgency=medium

   * Non-maintainer upload.
   * Replace pid-based, hardcoded and $RANDOM-based temporary file names
     to prevent against symlink attacks. Based mostly on a patch by Moritz
     Muehlenhoff <[EMAIL PROTECTED]>. (Closes: #496395)

The changes are moving the changes from Makefile.in to Makefile.am and
calling autoconf in debian/rules. Thanks to Thomas Viehmann <[EMAIL PROTECTED]>.


Regards,

-- 
Chris Lamb, UK                                       [EMAIL PROTECTED]
                                                            GPG: 0x634F9A20
diff -Nru apertium-3.0.7+1/apertium/apertium-header.sh 
apertium-3.0.7+1/apertium/apertium-header.sh
--- apertium-3.0.7+1/apertium/apertium-header.sh        2008-02-05 
06:49:07.000000000 +0000
+++ apertium-3.0.7+1/apertium/apertium-header.sh        2008-09-06 
23:32:35.000000000 +0100
@@ -36,19 +36,27 @@
   fi 
 }
 
+function random_suffix
+{
+       TEMP_FILE="$(mktemp)"
+       TARGET="${TEMP_FILE}${1}"
+       mv ${TEMP_FILE} ${TARGET} || exit 1
+       echo "${TARGET}"
+}
+
 function translate_odt
 {
-  INPUT_TMPDIR=/tmp/$$odtdir
+  INPUT_TMPDIR=`mktemp`
 
   locale_utf8
   test_zip
 
   if [[ $FICHERO == "" ]]
-  then FICHERO=/tmp/$$odtorig
+  then FICHERO=`mktemp`
        cat > $FICHERO
        BORRAFICHERO="true"
   fi
-  OTRASALIDA=/tmp/$$odtsalida.zip
+  OTRASALIDA=$(random_suffix odtsalida.zip)
   
   unzip -q -o -d $INPUT_TMPDIR $FICHERO
   find $INPUT_TMPDIR | grep content\\\.xml |\
@@ -78,17 +86,17 @@
 
 function translate_docx
 {
-  INPUT_TMPDIR=/tmp/$$docxdir
+  INPUT_TMPDIR=`mktemp`
 
   locale_utf8
   test_zip
   
   if [[ $FICHERO == "" ]]
-  then FICHERO=/tmp/$$docxorig
+  then FICHERO=`mktemp`
        cat > $FICHERO
        BORRAFICHERO="true"
   fi
-  OTRASALIDA=/tmp/$$docxsalida.zip
+  OTRASALIDA=$(random_suffix docxsalida.zip)
   
   if [[ $UWORDS == "no" ]]
   then OPCIONU="-u";
@@ -98,8 +106,9 @@
   unzip -q -o -d $INPUT_TMPDIR $FICHERO
   
   for i in $(find $INPUT_TMPDIR|grep "xlsx$");
-  do $APERTIUM_PATH/apertium -f xlsx -d $DIRECTORY $OPCIONU $PREFIJO <$i 
>/tmp/$$xlsxembed;
-     mv /tmp/$$xlsxembed $i;
+  TMP_XLSXEMBED=`mktemp`
+  do $APERTIUM_PATH/apertium -f xlsx -d $DIRECTORY $OPCIONU $PREFIJO <$i 
>$TMP_XLSXEMBED;
+     mv $TMP_XLSXEMBED $i;
   done;
   
   find $INPUT_TMPDIR | grep "xml" |\
@@ -130,17 +139,17 @@
 
 function translate_xlsx
 {
-  INPUT_TMPDIR=/tmp/$$xlsxdir
+  INPUT_TMPDIR=`mktemp`
 
   locale_utf8
   test_zip
   
   if [[ $FICHERO == "" ]]
-  then FICHERO=/tmp/$$xlsxorig
+  then FICHERO=`mktemp`
        cat > $FICHERO
        BORRAFICHERO="true"
   fi
-  OTRASALIDA=/tmp/$$xslxsalida.zip
+  OTRASALIDA=$(random_suffix xslxsalida.zip)
   
   unzip -q -o -d $INPUT_TMPDIR $FICHERO
   find $INPUT_TMPDIR | grep "sharedStrings.xml" |\
diff -Nru apertium-3.0.7+1/apertium/Makefile.am 
apertium-3.0.7+1/apertium/Makefile.am
--- apertium-3.0.7+1/apertium/Makefile.am       2008-03-26 21:39:42.000000000 
+0000
+++ apertium-3.0.7+1/apertium/Makefile.am       2008-09-06 23:32:35.000000000 
+0100
@@ -233,25 +233,29 @@
        @echo "Creating apertium-gen-deformat script"
        @echo "#!$(BASH)" > $@
        @cat deformat-header.sh >> $@
+       @echo "TMP_DEFORMAT=\`mktemp\`" >> $@
+       @echo "TMP_LEX=\`mktemp\`" >> $@
        @echo "$(XMLLINT) --dtdvalid $(apertiumdir)/format.dtd --noout \$$FILE1 
&& \\" >> $@
        @if [ `basename $(XSLTPROC)` == xsltproc ]; \
-         then echo "$(XSLTPROC) --stringparam mode \$$MODE 
$(apertiumdir)/deformat.xsl \$$FILE1 >/tmp/\$$\$$.deformat.l && \\"; \
-          else echo "$(XSLTPROC) $(apertiumdir)/deformat.xsl \$$FILE1 
\"\\\$$mode=\$$MODE\" >/tmp/\$$\$$.deformat.l && \\"; \
+         then echo "$(XSLTPROC) --stringparam mode \$$MODE 
$(apertiumdir)/deformat.xsl \$$FILE1 >\$$TMP_DEFORMAT && \\"; \
+          else echo "$(XSLTPROC) $(apertiumdir)/deformat.xsl \$$FILE1 
\"\\\$$mode=\$$MODE\" >\$$TMP_DEFORMAT && \\"; \
           fi >> $@ 
-       @echo "$(FLEX) \$$FLEXOPTS -o/tmp/\$$\$$.lex.cc /tmp/\$$\$$.deformat.l 
&& \\" >> $@
-       @echo "$(CXX) $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) 
-o \$$FILE2 /tmp/\$$\$$.lex.cc && \\" >> $@
-       @echo "rm /tmp/\$$\$$.deformat.l /tmp/\$$\$$.lex.cc" >> $@
+       @echo "$(FLEX) \$$FLEXOPTS -o\$$TMP_LEX \$$TMP_DEFORMAT && \\" >> $@
+       @echo "$(CXX) $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) 
-o \$$FILE2 \$$TMP_LEX && \\" >> $@
+       @echo "rm \$$TMP_DEFORMAT \$$TMP_LEX" >> $@
        @chmod a+x $@
 
 apertium-gen-reformat: Makefile.am gen-header.sh
        @echo "Creating apertium-gen-reformat script"
        @echo "#!$(BASH)" > $@
        @cat gen-header.sh >> $@
+       @echo "TMP_REFORMAT=\`mktemp\`" >> $@
+       @echo "TMP_LEX=\`mktemp\`" >> $@
        @echo "$(XMLLINT) --dtdvalid $(apertiumdir)/format.dtd --noout \$$FILE1 
&& \\" >> $@
-       @echo "$(XSLTPROC) $(apertiumdir)/reformat.xsl \$$FILE1 
>/tmp/\$$\$$.reformat.l && \\" >> $@
-       @echo "$(FLEX) \$$FLEXOPTS -o/tmp/\$$\$$.lex.cc /tmp/\$$\$$.reformat.l 
&& \\" >> $@
-       @echo "$(CXX) $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) 
-o \$$FILE2 /tmp/\$$\$$.lex.cc &&\\" >> $@
-       @echo "rm /tmp/\$$\$$.reformat.l /tmp/\$$\$$.lex.cc" >> $@
+       @echo "$(XSLTPROC) $(apertiumdir)/reformat.xsl \$$FILE1 
>\$$TMP_REFORMAT && \\" >> $@
+       @echo "$(FLEX) \$$FLEXOPTS -o\$$TMP_LEX \$$TMP_REFORMAT && \\" >> $@
+       @echo "$(CXX) $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) 
-o \$$FILE2 \$$TMP_LEX &&\\" >> $@
+       @echo "rm \$$TMP_REFORMAT \$$TMP_LEX" >> $@
        @chmod a+x $@
 
 apertium-gen-modes: Makefile.am modes-header.sh
diff -Nru apertium-3.0.7+1/apertium/Makefile.in 
apertium-3.0.7+1/apertium/Makefile.in
--- apertium-3.0.7+1/apertium/Makefile.in       2008-03-31 05:22:55.000000000 
+0100
+++ apertium-3.0.7+1/apertium/Makefile.in       2008-09-06 23:32:35.000000000 
+0100
@@ -1148,25 +1148,29 @@
        @echo "Creating apertium-gen-deformat script"
        @echo "#!$(BASH)" > $@
        @cat deformat-header.sh >> $@
+       @echo "TMP_DEFORMAT=\`mktemp\`" >> $@
+       @echo "TMP_LEX=\`mktemp\`" >> $@
        @echo "$(XMLLINT) --dtdvalid $(apertiumdir)/format.dtd --noout \$$FILE1 
&& \\" >> $@
        @if [ `basename $(XSLTPROC)` == xsltproc ]; \
-         then echo "$(XSLTPROC) --stringparam mode \$$MODE 
$(apertiumdir)/deformat.xsl \$$FILE1 >/tmp/\$$\$$.deformat.l && \\"; \
-          else echo "$(XSLTPROC) $(apertiumdir)/deformat.xsl \$$FILE1 
\"\\\$$mode=\$$MODE\" >/tmp/\$$\$$.deformat.l && \\"; \
+         then echo "$(XSLTPROC) --stringparam mode \$$MODE 
$(apertiumdir)/deformat.xsl \$$FILE1 >\$$TMP_DEFORMAT && \\"; \
+          else echo "$(XSLTPROC) $(apertiumdir)/deformat.xsl \$$FILE1 
\"\\\$$mode=\$$MODE\" >\$$TMP_DEFORMAT && \\"; \
           fi >> $@ 
-       @echo "$(FLEX) \$$FLEXOPTS -o/tmp/\$$\$$.lex.cc /tmp/\$$\$$.deformat.l 
&& \\" >> $@
-       @echo "$(CXX) $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) 
-o \$$FILE2 /tmp/\$$\$$.lex.cc && \\" >> $@
-       @echo "rm /tmp/\$$\$$.deformat.l /tmp/\$$\$$.lex.cc" >> $@
+       @echo "$(FLEX) \$$FLEXOPTS -o\$$TMP_LEX \$$TMP_DEFORMAT && \\" >> $@
+       @echo "$(CXX) $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) 
-o \$$FILE2 \$$TMP_LEX && \\" >> $@
+       @echo "rm \$$TMP_DEFORMAT \$$TMP_LEX" >> $@
        @chmod a+x $@
 
 apertium-gen-reformat: Makefile.am gen-header.sh
        @echo "Creating apertium-gen-reformat script"
        @echo "#!$(BASH)" > $@
        @cat gen-header.sh >> $@
+       @echo "TMP_REFORMAT=\`mktemp\`" >> $@
+       @echo "TMP_LEX=\`mktemp\`" >> $@
        @echo "$(XMLLINT) --dtdvalid $(apertiumdir)/format.dtd --noout \$$FILE1 
&& \\" >> $@
-       @echo "$(XSLTPROC) $(apertiumdir)/reformat.xsl \$$FILE1 
>/tmp/\$$\$$.reformat.l && \\" >> $@
-       @echo "$(FLEX) \$$FLEXOPTS -o/tmp/\$$\$$.lex.cc /tmp/\$$\$$.reformat.l 
&& \\" >> $@
-       @echo "$(CXX) $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) 
-o \$$FILE2 /tmp/\$$\$$.lex.cc &&\\" >> $@
-       @echo "rm /tmp/\$$\$$.reformat.l /tmp/\$$\$$.lex.cc" >> $@
+       @echo "$(XSLTPROC) $(apertiumdir)/reformat.xsl \$$FILE1 
>\$$TMP_REFORMAT && \\" >> $@
+       @echo "$(FLEX) \$$FLEXOPTS -o\$$TMP_LEX \$$TMP_REFORMAT && \\" >> $@
+       @echo "$(CXX) $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) 
-o \$$FILE2 \$$TMP_LEX &&\\" >> $@
+       @echo "rm \$$TMP_REFORMAT \$$TMP_LEX" >> $@
        @chmod a+x $@
 
 apertium-gen-modes: Makefile.am modes-header.sh
diff -Nru apertium-3.0.7+1/debian/changelog apertium-3.0.7+1/debian/changelog
--- apertium-3.0.7+1/debian/changelog   2008-09-06 23:32:34.000000000 +0100
+++ apertium-3.0.7+1/debian/changelog   2008-09-06 23:32:35.000000000 +0100
@@ -1,3 +1,12 @@
+apertium (3.0.7+1-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace pid-based, hardcoded and $RANDOM-based temporary file names
+    to prevent against symlink attacks. Based mostly on a patch by Moritz
+    Muehlenhoff <[EMAIL PROTECTED]>. (Closes: #496395)
+
+ -- Chris Lamb <[EMAIL PROTECTED]>  Sat, 06 Sep 2008 22:36:07 +0100
+
 apertium (3.0.7+1-1) unstable; urgency=low
 
   * Fix FTBFS gcc-4.3.  Closes: #417083
diff -Nru apertium-3.0.7+1/debian/control apertium-3.0.7+1/debian/control
--- apertium-3.0.7+1/debian/control     2008-09-06 23:32:34.000000000 +0100
+++ apertium-3.0.7+1/debian/control     2008-09-06 23:32:35.000000000 +0100
@@ -1,7 +1,7 @@
 Source: apertium
 Priority: optional
 Maintainer: Francis Tyers <[EMAIL PROTECTED]>
-Build-Depends: debhelper (>= 4.0.0), autotools-dev, libxml2-dev, pkg-config 
(>= 0.20 ), liblttoolbox3-3.0-0-dev (>= 3.0.0 ), libxml2-utils (>= 2.6.24 ), 
xsltproc (>= 1.1.16 ), flex (>= 2.5.33), libpcre3-dev (>= 3.0.0 )
+Build-Depends: debhelper (>= 4.0.0), autotools-dev, autoconf, libxml2-dev, 
pkg-config (>= 0.20 ), liblttoolbox3-3.0-0-dev (>= 3.0.0 ), libxml2-utils (>= 
2.6.24 ), xsltproc (>= 1.1.16 ), flex (>= 2.5.33), libpcre3-dev (>= 3.0.0 )
 Standards-Version: 3.7.3
 Section: libs
 Homepage: http://www.apertium.org
diff -Nru apertium-3.0.7+1/debian/rules apertium-3.0.7+1/debian/rules
--- apertium-3.0.7+1/debian/rules       2008-09-06 23:32:34.000000000 +0100
+++ apertium-3.0.7+1/debian/rules       2008-09-06 23:32:35.000000000 +0100
@@ -31,6 +31,7 @@
 config.status: configure
        dh_testdir
        # Add here commands to configure the package.
+       autoconf
        CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS) -Wl,-z,defs" ./configure 
--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr 
--mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
 
 

Attachment: signature.asc
Description: PGP signature

Reply via email to