mirror of
https://git.busybox.net/buildroot.git
synced 2024-12-03 02:13:29 +08:00
7b47598e75
Drop 0030-Fix-cross-compiling-the-uuid-module.patch as the patched code has been reworked upstream and python3 is built with --disable-uuid:91a51c5ffc
Rework 0033-configure.ac-fixup-CC-print-multiarch-output-for-mus.patch as the MULTIARCH code is now conditional on !darwin:9901d153c2
Refresh and renumber remaining patches. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> (cherry picked from commitce81a6e6d2
) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
41 lines
1.5 KiB
Diff
41 lines
1.5 KiB
Diff
From 09ded6ff285e12221114b281d35fe8f9484a9ea5 Mon Sep 17 00:00:00 2001
|
|
From: Romain Naour <romain.naour@gmail.com>
|
|
Date: Thu, 12 Nov 2020 00:16:18 +0100
|
|
Subject: [PATCH] lib/crypt: uClibc-ng doesn't set errno when encryption method
|
|
is not available
|
|
|
|
Since commit [1] in cpython, an exception is raised when an encryption method
|
|
is not available. This eception is handled only if errno is set to EINVAL by
|
|
crypt() but uClibc-ng doesn't set errno in crypt() [2].
|
|
|
|
Fixes:
|
|
https://gitlab.com/buildroot.org/buildroot/-/jobs/830981961
|
|
https://gitlab.com/buildroot.org/buildroot/-/jobs/830981979
|
|
|
|
[1] https://github.com/python/cpython/commit/0d3fe8ae4961bf551e7d5e42559e2ede1a08fd7c
|
|
[2] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/libcrypt/crypt.c?h=v1.0.36#n29
|
|
|
|
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
|
---
|
|
Lib/crypt.py | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/Lib/crypt.py b/Lib/crypt.py
|
|
index 33dbc46bb3..4692a5270c 100644
|
|
--- a/Lib/crypt.py
|
|
+++ b/Lib/crypt.py
|
|
@@ -94,7 +94,9 @@ def _add_method(name, *args, rounds=None):
|
|
result = crypt('', salt)
|
|
except OSError as e:
|
|
# Not all libc libraries support all encryption methods.
|
|
- if e.errno == errno.EINVAL:
|
|
+ # Not all libc libraries set errno when encryption method is not
|
|
+ # available.
|
|
+ if e.errno == errno.EINVAL or e.errno == 0:
|
|
return False
|
|
raise
|
|
if result and len(result) == method.total_size:
|
|
--
|
|
2.20.1
|
|
|