]> granicus.if.org Git - python/commitdiff
Issue #18408: random_seed() now raises a MemoryError on memory allocation
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 15 Jul 2013 18:00:36 +0000 (20:00 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Mon, 15 Jul 2013 18:00:36 +0000 (20:00 +0200)
failure

Modules/_randommodule.c

index a729817f3dd0b84799e1cfb23c2e553290e2e663..59c15b39d70a4e8c3fe33f072a53758a310efd70 100644 (file)
@@ -250,8 +250,10 @@ random_seed(RandomObject *self, PyObject *args)
 
     /* Convert seed to byte sequence. */
     key_as_bytes = (unsigned char *)PyMem_Malloc((size_t)4 * keyused);
-    if (key_as_bytes == NULL)
+    if (key_as_bytes == NULL) {
+        PyErr_NoMemory();
         goto Done;
+    }
     res = _PyLong_AsByteArray((PyLongObject *)n,
                               key_as_bytes, keyused * 4,
                               1,  /* little-endian */
@@ -264,6 +266,7 @@ random_seed(RandomObject *self, PyObject *args)
     /* Fill array of unsigned longs from byte sequence. */
     key = (unsigned long *)PyMem_Malloc(sizeof(unsigned long) * keyused);
     if (key == NULL) {
+        PyErr_NoMemory();
         PyMem_Free(key_as_bytes);
         goto Done;
     }