Fix for bug #626172: crash using unicode latin1 single char
authorMarc-André Lemburg <mal@egenix.com>
Wed, 23 Oct 2002 09:02:46 +0000 (09:02 +0000)
committerMarc-André Lemburg <mal@egenix.com>
Wed, 23 Oct 2002 09:02:46 +0000 (09:02 +0000)
Python 2.2.3 candidate.

Lib/test/test_unicode.py
Objects/unicodeobject.c

index 89e28b5b405f34dd9d846592d093588297285ba5..cd40a4bbf1c938f72ae740f8d7f4e31b6355d9d7 100644 (file)
@@ -434,6 +434,12 @@ vereq((u'ab' in 'abc'), True)
 vereq((u'ab' in (1,None,u'ab')), True)
 vereq((u'' in u'abc'), True)
 vereq(('' in u'abc'), True)
+try:
+    u'\xe2' in 'g\xe2teau'
+except UnicodeError:
+    pass
+else:
+    print '*** contains operator does not propagate UnicodeErrors'
 print 'done.'
 
 # Formatting:
index 5f9f4a70d1443776dbba2fd8d2e821e3b2891501..c1cdebc0e8e9e10b00a5120b05c21eb6f9951af5 100644 (file)
@@ -4485,10 +4485,8 @@ int PyUnicode_Contains(PyObject *container,
        goto onError;
     }
     u = (PyUnicodeObject *)PyUnicode_FromObject(container);
-    if (u == NULL) {
-       Py_DECREF(v);
+    if (u == NULL)
        goto onError;
-    }
 
     size = PyUnicode_GET_SIZE(v);
     rhs = PyUnicode_AS_UNICODE(v);