Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cfb1961

Browse files
committed
py_getrandom(): use char* instead of void* for the destination
Fix a "gcc -pedantic" warning on "buffer += n" because buffer type is void*.
1 parent 24a72ca commit cfb1961

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

Python/random.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,14 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
132132
* see https://bugs.python.org/issue26839. To avoid this, use the
133133
* GRND_NONBLOCK flag. */
134134
const int flags = GRND_NONBLOCK;
135+
136+
char *dest;
135137
int n;
136138

137139
if (!getrandom_works)
138140
return 0;
139141

142+
dest = buffer;
140143
while (0 < size) {
141144
#ifdef sun
142145
/* Issue #26735: On Solaris, getrandom() is limited to returning up
@@ -150,23 +153,23 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
150153
#ifdef HAVE_GETRANDOM
151154
if (raise) {
152155
Py_BEGIN_ALLOW_THREADS
153-
n = getrandom(buffer, n, flags);
156+
n = getrandom(dest, n, flags);
154157
Py_END_ALLOW_THREADS
155158
}
156159
else {
157-
n = getrandom(buffer, n, flags);
160+
n = getrandom(dest, n, flags);
158161
}
159162
#else
160163
/* On Linux, use the syscall() function because the GNU libc doesn't
161164
* expose the Linux getrandom() syscall yet. See:
162165
* https://sourceware.org/bugzilla/show_bug.cgi?id=17252 */
163166
if (raise) {
164167
Py_BEGIN_ALLOW_THREADS
165-
n = syscall(SYS_getrandom, buffer, n, flags);
168+
n = syscall(SYS_getrandom, dest, n, flags);
166169
Py_END_ALLOW_THREADS
167170
}
168171
else {
169-
n = syscall(SYS_getrandom, buffer, n, flags);
172+
n = syscall(SYS_getrandom, dest, n, flags);
170173
}
171174
#endif
172175

@@ -204,7 +207,7 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
204207
return -1;
205208
}
206209

207-
buffer += n;
210+
dest += n;
208211
size -= n;
209212
}
210213
return 1;

0 commit comments

Comments
 (0)