From: Victor Stinner <victor.stinner@haypocalc.com>
Date: Mon, 21 Nov 2011 01:50:14 +0000 (+0100)
Subject: MultibyteCodec_Encode() checks if PyUnicode_AS_UNICODE() failed
X-Git-Tag: v3.3.0a1~778
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9a80faba886ab081e7ccb30440f3c8e158738bab;p=python

MultibyteCodec_Encode() checks if PyUnicode_AS_UNICODE() failed
---

diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index 77edbb3094..6b2352373c 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -574,8 +574,11 @@ MultibyteCodec_Encode(MultibyteCodecObject *self,
         }
     }
 
-    data = PyUnicode_AS_UNICODE(arg);
-    datalen = PyUnicode_GET_SIZE(arg);
+    data = PyUnicode_AsUnicodeAndSize(arg, &datalen);
+    if (data == NULL) {
+        Py_XDECREF(ucvt);
+        return NULL;
+    }
 
     errorcb = internal_error_callback(errors);
     if (errorcb == NULL) {