diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/office/antiword')
-rw-r--r-- | nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c.patch | 18 | ||||
-rw-r--r-- | nixpkgs/pkgs/applications/office/antiword/default.nix | 31 |
2 files changed, 49 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c.patch b/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c.patch new file mode 100644 index 000000000000..ebf2f0900d98 --- /dev/null +++ b/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c.patch @@ -0,0 +1,18 @@ +Description: Add check for buffer overflow with malformed input files +Author: <eriks@debian.org> +Bug-Debian: http://bugs.debian.org/407015 +Last-Update: 2009-06-03 + +--- antiword-0.37~/wordole.c 2005-08-26 21:49:57.000000000 +0200 ++++ antiword-0.37/wordole.c 2009-06-03 22:31:15.948014682 +0200 +@@ -259,6 +259,10 @@ + } + tNameSize = (size_t)usGetWord(0x40, aucBytes); + tNameSize = (tNameSize + 1) / 2; ++ if ( tNameSize > sizeof(atPPSlist[iIndex].szName)) { ++ werr(0, "Name Size of PPS %d is too large", iIndex); ++ tNameSize = sizeof(atPPSlist[iIndex].szName); ++ } + vName2String(atPPSlist[iIndex].szName, aucBytes, tNameSize); + atPPSlist[iIndex].ucType = ucGetByte(0x42, aucBytes); + if (atPPSlist[iIndex].ucType == 5) { diff --git a/nixpkgs/pkgs/applications/office/antiword/default.nix b/nixpkgs/pkgs/applications/office/antiword/default.nix new file mode 100644 index 000000000000..96a518a7a28f --- /dev/null +++ b/nixpkgs/pkgs/applications/office/antiword/default.nix @@ -0,0 +1,31 @@ +{ fetchurl, stdenv }: + +let + name = "antiword-0.37"; +in +stdenv.mkDerivation { + inherit name; + + src = fetchurl { + url = "http://www.winfield.demon.nl/linux/${name}.tar.gz"; + sha256 = "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f"; + }; + + prePatch = '' + sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/share|$out/share|g" Makefile antiword.h + substituteInPlace Makefile --replace "gcc" "cc" + ''; + + patches = [ ./10_fix_buffer_overflow_wordole_c.patch ]; + + installTargets = "global_install"; + + meta = { + homepage = http://www.winfield.demon.nl/; + description = "Convert MS Word documents to plain text or PostScript"; + license = stdenv.lib.licenses.gpl2; + + maintainers = [ stdenv.lib.maintainers.peti ]; + platforms = with stdenv.lib.platforms; linux ++ darwin; + }; +} |