mirror of
https://github.com/python/cpython.git
synced 2025-09-17 22:20:23 +00:00
Fix issue 4884, preventing a crash in the socket code when python is compiled
with llvm-gcc and run with a glibc <2.10.
This commit is contained in:
parent
343b970da9
commit
d89f5b20b2
2 changed files with 14 additions and 1 deletions
|
@ -709,6 +709,15 @@ typedef struct fd_set {
|
||||||
#define Py_FORMAT_PARSETUPLE(func,p1,p2)
|
#define Py_FORMAT_PARSETUPLE(func,p1,p2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Specify alignment on compilers that support it.
|
||||||
|
*/
|
||||||
|
#if defined(__GNUC__) && __GNUC__ >= 3
|
||||||
|
#define Py_ALIGNED(x) __attribute__((aligned(x)))
|
||||||
|
#else
|
||||||
|
#define Py_ALIGNED(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Eliminate end-of-loop code not reached warnings from SunPro C
|
/* Eliminate end-of-loop code not reached warnings from SunPro C
|
||||||
* when using do{...}while(0) macros
|
* when using do{...}while(0) macros
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -3334,7 +3334,11 @@ socket_gethostbyaddr(PyObject *self, PyObject *args)
|
||||||
#ifdef HAVE_GETHOSTBYNAME_R_3_ARG
|
#ifdef HAVE_GETHOSTBYNAME_R_3_ARG
|
||||||
struct hostent_data data;
|
struct hostent_data data;
|
||||||
#else
|
#else
|
||||||
char buf[16384];
|
/* glibcs up to 2.10 assume that the buf argument to
|
||||||
|
gethostbyaddr_r is 8-byte aligned, which at least llvm-gcc
|
||||||
|
does not ensure. The attribute below instructs the compiler
|
||||||
|
to maintain this alignment. */
|
||||||
|
char buf[16384] Py_ALIGNED(8);
|
||||||
int buf_len = (sizeof buf) - 1;
|
int buf_len = (sizeof buf) - 1;
|
||||||
int errnop;
|
int errnop;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue