Skip to content

Commit

Permalink
fix build failure with recent glibc
Browse files Browse the repository at this point in the history
RT #133184

pp_crypt() directly manipulates a field inside 'struct crypt_data' to work
around a bug in an ancient glibc version from circa 2002. New glibc
releases don't have this field so perl fails to compile. Make the hack
conditional on glibc version.

Stolen from a patch to the Fedora 28 distribution.
  • Loading branch information
iabyn committed May 11, 2018
1 parent 77dddf9 commit e9c9cf5
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion pp.c
Expand Up @@ -3653,8 +3653,12 @@ PP(pp_crypt)
#if defined(__GLIBC__) || defined(__EMX__)
if (PL_reentrant_buffer->_crypt_struct_buffer) {
PL_reentrant_buffer->_crypt_struct_buffer->initialized = 0;
/* work around glibc-2.2.5 bug */
#if (defined(__GLIBC__) && __GLIBC__ == 2) && \
(defined(__GLIBC_MINOR__) && __GLIBC_MINOR__ >= 2 && __GLIBC_MINOR__ < 4)
/* work around glibc-2.2.5 bug, has been fixed at some
* time in glibc-2.3.X */
PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0;
#endif
}
#endif
}
Expand Down

0 comments on commit e9c9cf5

Please sign in to comment.