about summary refs log tree commit diff
path: root/pkgs/development/libraries/plib
diff options
context:
space:
mode:
authorJakob Gillich <jakob@gillich.me>2016-01-07 05:42:28 +0100
committerVladimír Čunát <vcunat@gmail.com>2016-01-07 10:25:26 +0100
commit90b853b70698c2b9a6ab5ce814263a417aa80bdf (patch)
treec9de8191938f9ade1cae132af8ed749c4bb49bc4 /pkgs/development/libraries/plib
parent4f4eebbded6b18d3e308c6e03943355a6622b489 (diff)
downloadnixlib-90b853b70698c2b9a6ab5ce814263a417aa80bdf.tar
nixlib-90b853b70698c2b9a6ab5ce814263a417aa80bdf.tar.gz
nixlib-90b853b70698c2b9a6ab5ce814263a417aa80bdf.tar.bz2
nixlib-90b853b70698c2b9a6ab5ce814263a417aa80bdf.tar.lz
nixlib-90b853b70698c2b9a6ab5ce814263a417aa80bdf.tar.xz
nixlib-90b853b70698c2b9a6ab5ce814263a417aa80bdf.tar.zst
nixlib-90b853b70698c2b9a6ab5ce814263a417aa80bdf.zip
plib: fix CVE-2012-4552 (close #12195)
patch source: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694810#10
Diffstat (limited to 'pkgs/development/libraries/plib')
-rw-r--r--pkgs/development/libraries/plib/CVE-2012-4552.patch55
-rw-r--r--pkgs/development/libraries/plib/default.nix2
2 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/development/libraries/plib/CVE-2012-4552.patch b/pkgs/development/libraries/plib/CVE-2012-4552.patch
new file mode 100644
index 000000000000..d38532830769
--- /dev/null
+++ b/pkgs/development/libraries/plib/CVE-2012-4552.patch
@@ -0,0 +1,55 @@
+diff -up plib-1.8.5/src/ssg/ssgParser.cxx~ plib-1.8.5/src/ssg/ssgParser.cxx
+--- plib-1.8.5/src/ssg/ssgParser.cxx~	2008-03-11 03:06:23.000000000 +0100
++++ plib-1.8.5/src/ssg/ssgParser.cxx	2012-11-01 15:33:12.424483374 +0100
+@@ -57,18 +57,16 @@ void _ssgParser::error( const char *form
+   char msgbuff[ 255 ];
+   va_list argp;
+
+-  char* msgptr = msgbuff;
+-  if (linenum)
+-  {
+-    msgptr += sprintf ( msgptr,"%s, line %d: ",
+-      path, linenum );
+-  }
+-
+   va_start( argp, format );
+-  vsprintf( msgptr, format, argp );
++  vsnprintf( msgbuff, sizeof(msgbuff), format, argp );
+   va_end( argp );
+
+-  ulSetError ( UL_WARNING, "%s", msgbuff ) ;
++  if (linenum)
++  {
++    ulSetError ( UL_WARNING, "%s, line %d: %s", path, linenum, msgbuff ) ;
++  } else {
++    ulSetError ( UL_WARNING, "%s", msgbuff ) ;
++  }
+ }
+
+
+@@ -78,18 +76,16 @@ void _ssgParser::message( const char *fo
+   char msgbuff[ 255 ];
+   va_list argp;
+
+-  char* msgptr = msgbuff;
+-  if (linenum)
+-  {
+-    msgptr += sprintf ( msgptr,"%s, line %d: ",
+-      path, linenum );
+-  }
+-
+   va_start( argp, format );
+-  vsprintf( msgptr, format, argp );
++  vsnprintf( msgbuff, sizeof(msgbuff), format, argp );
+   va_end( argp );
+
+-  ulSetError ( UL_DEBUG, "%s", msgbuff ) ;
++  if (linenum)
++  {
++    ulSetError ( UL_DEBUG, "%s, line %d: %s", path, linenum, msgbuff ) ;
++  } else {
++    ulSetError ( UL_DEBUG, "%s", msgbuff ) ;
++  }
+ }
+
+ // Opens the file and does a few internal calculations based on the spec.
diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix
index 4ab6fb3ad8b4..ff60e62cad3f 100644
--- a/pkgs/development/libraries/plib/default.nix
+++ b/pkgs/development/libraries/plib/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0cha71mflpa10vh2l7ipyqk67dq2y0k5xbafwdks03fwdyzj4ns8";
   };
 
+  patches = [ ./CVE-2012-4552.patch ];
+
   NIX_CFLAGS_COMPILE = if enablePIC then "-fPIC" else "";
 
   propagatedBuildInputs = [