1 |
From cc0722e290234c69551d21289163593763d53691 Mon Sep 17 00:00:00 2001 |
2 |
From: Anssi Hannula <anssi.hannula@iki.fi> |
3 |
Date: Sat, 13 Nov 2010 18:43:23 +0200 |
4 |
Subject: [PATCH 15/15] fixed: CVE-2010-3493 in internal python (Mandriva) |
5 |
|
6 |
--- |
7 |
xbmc/lib/libPython/Python/Lib/smtpd.py | 10 +++++++++- |
8 |
1 files changed, 9 insertions(+), 1 deletions(-) |
9 |
|
10 |
diff --git a/xbmc/lib/libPython/Python/Lib/smtpd.py b/xbmc/lib/libPython/Python/Lib/smtpd.py |
11 |
index 83596a4..5cfdd31 100755 |
12 |
--- a/xbmc/lib/libPython/Python/Lib/smtpd.py |
13 |
+++ b/xbmc/lib/libPython/Python/Lib/smtpd.py |
14 |
@@ -121,7 +121,15 @@ class SMTPChannel(asynchat.async_chat): |
15 |
self.__rcpttos = [] |
16 |
self.__data = '' |
17 |
self.__fqdn = socket.getfqdn() |
18 |
- self.__peer = conn.getpeername() |
19 |
+ try: |
20 |
+ self.__peer = conn.getpeername() |
21 |
+ except socket.error as err: |
22 |
+ # a race condition may occur if the other end is closing |
23 |
+ # before we can get the peername |
24 |
+ self.close() |
25 |
+ if err.args[0] != errno.ENOTCONN: |
26 |
+ raise |
27 |
+ return |
28 |
print >> DEBUGSTREAM, 'Peer:', repr(self.__peer) |
29 |
self.push('220 %s %s' % (self.__fqdn, __version__)) |
30 |
self.set_terminator('\r\n') |
31 |
-- |
32 |
1.7.3 |
33 |
|