diff options
author | James Cook <james.cook@utoronto.ca> | 2014-04-12 15:49:02 -0700 |
---|---|---|
committer | Domen Kožar <domen@dev.si> | 2014-04-13 05:15:19 +0200 |
commit | 21cb9c24f00f78862920a58e1936a4ee1e1eeba5 (patch) | |
tree | 71cedf9a4ff7c7da89af80eb5bf7cf80a4903817 /pkgs/development/interpreters/python | |
parent | 324ade465805466be9bcfa5b29dcfa7af60505c9 (diff) | |
download | nixlib-21cb9c24f00f78862920a58e1936a4ee1e1eeba5.tar nixlib-21cb9c24f00f78862920a58e1936a4ee1e1eeba5.tar.gz nixlib-21cb9c24f00f78862920a58e1936a4ee1e1eeba5.tar.bz2 nixlib-21cb9c24f00f78862920a58e1936a4ee1e1eeba5.tar.lz nixlib-21cb9c24f00f78862920a58e1936a4ee1e1eeba5.tar.xz nixlib-21cb9c24f00f78862920a58e1936a4ee1e1eeba5.tar.zst nixlib-21cb9c24f00f78862920a58e1936a4ee1e1eeba5.zip |
Patch python32 for CVE-2014-1912.
Diffstat (limited to 'pkgs/development/interpreters/python')
-rw-r--r-- | pkgs/development/interpreters/python/3.2/CVE-2014-1912.patch | 57 | ||||
-rw-r--r-- | pkgs/development/interpreters/python/3.2/default.nix | 6 |
2 files changed, 63 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/python/3.2/CVE-2014-1912.patch b/pkgs/development/interpreters/python/3.2/CVE-2014-1912.patch new file mode 100644 index 000000000000..c69efd17f964 --- /dev/null +++ b/pkgs/development/interpreters/python/3.2/CVE-2014-1912.patch @@ -0,0 +1,57 @@ +# Edited from Mercurial patch: deleted the NEWS hunk, since it didn't apply cleanly. +# It added the following line to NEWS: +# - Issue #20246: Fix buffer overflow in socket.recvfrom_into. + + +# HG changeset patch +# User Benjamin Peterson <benjamin@python.org> +# Date 1389671978 18000 +# Node ID 9c56217e5c793685eeaf0ee224848c402bdf1e4c +# Parent 2b5cd6d4d149dea6c6941b7e07ada248b29fc9f6 +complain when nbytes > buflen to fix possible buffer overflow (closes #20246) + +diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py +--- a/Lib/test/test_socket.py ++++ b/Lib/test/test_socket.py +@@ -1968,6 +1968,14 @@ class BufferIOTest(SocketConnectedTest): + + _testRecvFromIntoMemoryview = _testRecvFromIntoArray + ++ def testRecvFromIntoSmallBuffer(self): ++ # See issue #20246. ++ buf = bytearray(8) ++ self.assertRaises(ValueError, self.cli_conn.recvfrom_into, buf, 1024) ++ ++ def _testRecvFromIntoSmallBuffer(self): ++ self.serv_conn.send(MSG*2048) ++ + + TIPC_STYPE = 2000 + TIPC_LOWER = 200 +diff --git a/Misc/ACKS b/Misc/ACKS +--- a/Misc/ACKS ++++ b/Misc/ACKS +@@ -1020,6 +1020,7 @@ Eric V. Smith + Christopher Smith + Gregory P. Smith + Roy Smith ++Ryan Smith-Roberts + Rafal Smotrzyk + Dirk Soede + Paul Sokolovsky +diff --git a/Misc/NEWS b/Misc/NEWS +--- a/Modules/socketmodule.c ++++ b/Modules/socketmodule.c +@@ -2598,6 +2598,11 @@ sock_recvfrom_into(PySocketSockObject *s + if (recvlen == 0) { + /* If nbytes was not specified, use the buffer's length */ + recvlen = buflen; ++ } else if (recvlen > buflen) { ++ PyBuffer_Release(&pbuf); ++ PyErr_SetString(PyExc_ValueError, ++ "nbytes is greater than the length of the buffer"); ++ return NULL; + } + + readlen = sock_recvfrom_guts(s, buf, recvlen, flags, &addr); + diff --git a/pkgs/development/interpreters/python/3.2/default.nix b/pkgs/development/interpreters/python/3.2/default.nix index 03f2d392bd11..c103b0f59cde 100644 --- a/pkgs/development/interpreters/python/3.2/default.nix +++ b/pkgs/development/interpreters/python/3.2/default.nix @@ -32,6 +32,12 @@ stdenv.mkDerivation { sha256 = "0pxs234g08v3lar09lvzxw4vqdpwkbqmvkv894j2w7aklskcjd6v"; }; + patches = + [ + # See http://bugs.python.org/issue20246 + ./CVE-2014-1912.patch + ]; + NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; preConfigure = '' |