diff Modules/socketmodule.c @ 66799:50d170bb71c7

Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
author Alexander Belopolsky <alexander.belopolsky@gmail.com>
date Wed, 08 Dec 2010 23:31:48 +0000
parents 3d9a86b8cc98
children 3c9232a684ae e2f96bd29252
line wrap: on
line diff
--- a/Modules/socketmodule.c	Wed Dec 08 22:53:00 2010 +0000
+++ b/Modules/socketmodule.c	Wed Dec 08 23:31:48 2010 +0000
@@ -1406,9 +1406,9 @@
         {
             struct sockaddr_hci *addr = (struct sockaddr_hci *)addr_ret;
 #if defined(__NetBSD__) || defined(__DragonFly__)
-			char *straddr = PyBytes_AS_STRING(args);
-
-			_BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
+                        char *straddr = PyBytes_AS_STRING(args);
+
+                        _BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
             if (straddr == NULL) {
                 PyErr_SetString(socket_error, "getsockaddrarg: "
                     "wrong format");
@@ -4022,8 +4022,10 @@
         pptr = pbuf;
     } else if (PyUnicode_Check(pobj)) {
         pptr = _PyUnicode_AsString(pobj);
+        if (pptr == NULL)
+            goto err;
     } else if (PyBytes_Check(pobj)) {
-        pptr = PyBytes_AsString(pobj);
+        pptr = PyBytes_AS_STRING(pobj);
     } else if (pobj == Py_None) {
         pptr = (char *)NULL;
     } else {