]> granicus.if.org Git - python/commitdiff
py_getrandom(): use char* instead of void* for the destination
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 8 Jun 2016 08:16:50 +0000 (10:16 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 8 Jun 2016 08:16:50 +0000 (10:16 +0200)
Fix a "gcc -pedantic" warning on "buffer += n" because buffer type is void*.

Python/random.c

index ef3a4cd9cf2ffb6dd7200f3d38812044be4351a8..cd8d945f8fba4b7bb588e3634ffe15d1e98b0513 100644 (file)
@@ -132,11 +132,14 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
      * see https://bugs.python.org/issue26839. To avoid this, use the
      * GRND_NONBLOCK flag. */
     const int flags = GRND_NONBLOCK;
+
+    char *dest;
     int n;
 
     if (!getrandom_works)
         return 0;
 
+    dest = buffer;
     while (0 < size) {
 #ifdef sun
         /* Issue #26735: On Solaris, getrandom() is limited to returning up
@@ -150,11 +153,11 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
 #ifdef HAVE_GETRANDOM
         if (raise) {
             Py_BEGIN_ALLOW_THREADS
-            n = getrandom(buffer, n, flags);
+            n = getrandom(dest, n, flags);
             Py_END_ALLOW_THREADS
         }
         else {
-            n = getrandom(buffer, n, flags);
+            n = getrandom(dest, n, flags);
         }
 #else
         /* On Linux, use the syscall() function because the GNU libc doesn't
@@ -162,11 +165,11 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
          * https://sourceware.org/bugzilla/show_bug.cgi?id=17252 */
         if (raise) {
             Py_BEGIN_ALLOW_THREADS
-            n = syscall(SYS_getrandom, buffer, n, flags);
+            n = syscall(SYS_getrandom, dest, n, flags);
             Py_END_ALLOW_THREADS
         }
         else {
-            n = syscall(SYS_getrandom, buffer, n, flags);
+            n = syscall(SYS_getrandom, dest, n, flags);
         }
 #endif
 
@@ -204,7 +207,7 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
             return -1;
         }
 
-        buffer += n;
+        dest += n;
         size -= n;
     }
     return 1;