[python] 2.7.3-26: raise correct exception in os.urandom() when /dev/urandom is missing (patch 171; rhbz#9073
dmalcolm
dmalcolm at fedoraproject.org
Thu Feb 21 19:44:56 UTC 2013
commit c9c381fa337e2c08191acdb9600b530864023214
Author: David Malcolm <dmalcolm at redhat.com>
Date: Thu Feb 21 14:44:28 2013 -0500
2.7.3-26: raise correct exception in os.urandom() when /dev/urandom is missing (patch 171; rhbz#907383)
* Thu Feb 21 2013 David Malcolm <dmalcolm at redhat.com> - 2.7.3-26
- raise correct exception in os.urandom() when /dev/urandom is missing
(patch 171; rhbz#907383)
...ect-exception-when-dev-urandom-is-missing.patch | 14 ++++++++++++++
python.spec | 17 ++++++++++++++++-
2 files changed, 30 insertions(+), 1 deletions(-)
---
diff --git a/00171-raise-correct-exception-when-dev-urandom-is-missing.patch b/00171-raise-correct-exception-when-dev-urandom-is-missing.patch
new file mode 100644
index 0000000..1b26e51
--- /dev/null
+++ b/00171-raise-correct-exception-when-dev-urandom-is-missing.patch
@@ -0,0 +1,14 @@
+diff -up Python-2.7.3/Misc/NEWS.raise-correct-exception-when-dev-urandom-is-missing Python-2.7.3/Misc/NEWS
+diff -up Python-2.7.3/Python/random.c.raise-correct-exception-when-dev-urandom-is-missing Python-2.7.3/Python/random.c
+--- Python-2.7.3/Python/random.c.raise-correct-exception-when-dev-urandom-is-missing 2012-04-09 19:07:35.000000000 -0400
++++ Python-2.7.3/Python/random.c 2013-02-21 14:39:01.020988043 -0500
+@@ -165,7 +165,8 @@ dev_urandom_python(char *buffer, Py_ssiz
+ Py_END_ALLOW_THREADS
+ if (fd < 0)
+ {
+- PyErr_SetFromErrnoWithFilename(PyExc_OSError, "/dev/urandom");
++ PyErr_SetString(PyExc_NotImplementedError,
++ "/dev/urandom (or equivalent) not found");
+ return -1;
+ }
+
diff --git a/python.spec b/python.spec
index 29f1547..1309c89 100644
--- a/python.spec
+++ b/python.spec
@@ -106,7 +106,7 @@ Summary: An interpreted, interactive, object-oriented programming language
Name: %{python}
# Remember to also rebase python-docs when changing this:
Version: 2.7.3
-Release: 25%{?dist}
+Release: 26%{?dist}
License: Python
Group: Development/Languages
Requires: %{python}-libs%{?_isa} = %{version}-%{release}
@@ -782,6 +782,16 @@ Patch169: 00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch
# (rhbz#850013)
Patch170: 00170-gc-assertions.patch
+# 00171 #
+# Fix os.urandom() so that it raises NotImplementedError rather than OSError
+# if /dev/urandom can't be opened (e.g. in some chroots), given that callers
+# such as the random module have handler code expecting NotImplementedError
+# (regression introduced by hash randomization patch)
+#
+# Cherrypick of http://hg.python.org/cpython/rev/edbf37ace03c/ from upstream
+# (rhbz#907383; http://bugs.python.org/issue15340)
+Patch171: 00171-raise-correct-exception-when-dev-urandom-is-missing.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora 17 onwards,
@@ -1119,6 +1129,7 @@ mv Modules/cryptmodule.c Modules/_cryptmodule.c
%patch168 -p1
%patch169 -p1
%patch170 -p1
+%patch171 -p1 -b .raise-correct-exception-when-dev-urandom-is-missing
# This shouldn't be necesarry, but is right now (2.2a3)
@@ -1951,6 +1962,10 @@ rm -fr %{buildroot}
# ======================================================
%changelog
+* Thu Feb 21 2013 David Malcolm <dmalcolm at redhat.com> - 2.7.3-26
+- raise correct exception in os.urandom() when /dev/urandom is missing
+(patch 171; rhbz#907383)
+
* Wed Feb 20 2013 David Malcolm <dmalcolm at redhat.com> - 2.7.3-25
- in debug builds, try to print repr() when a C-level assert fails in the
garbage collector (typically indicating a reference-counting error somewhere
More information about the scm-commits
mailing list