"bug in glibc"

There is a note in src/os/unix/ngx_user.c about a bug in glibc for
crypt_r:

/* work around the glibc bug */
cd.current_salt[0] = ~salt[0];

value = crypt_r((char *) key, (char *) salt, &cd);

I was wondering if anyone knew what the bug was, as I am running on a
platform (Musl libc) that has got NGX_HAVE_GNU_CRYPT_R but has a
different
implementation, in particular has no current_salt field in struct
crypt_data (and indeed the man page says you should treat it as opaque
except for the initialized field).

I was wondering exactly what the bug was as then I could write a test
for
it rather than always including this code; I have not been able to find
it
in the glibc bug tracker though.

Thanks

Justin

On Mar 31, 2013, at 14:33 , Justin Cormack wrote:

There is a note in src/os/unix/ngx_user.c about a bug in glibc for crypt_r:

/* work around the glibc bug */
cd.current_salt[0] = ~salt[0];

value = crypt_r((char *) key, (char *) salt, &cd);

I was wondering if anyone knew what the bug was, as I am running on a platform
(Musl libc) that has got NGX_HAVE_GNU_CRYPT_R but has a different implementation,
in particular has no current_salt field in struct crypt_data (and indeed the man
page says you should treat it as opaque except for the initialized field).

I was wondering exactly what the bug was as then I could write a test for it
rather than always including this code; I have not been able to find it in the
glibc bug tracker though.

2002-10-29 Daniel Jacobowitz [email protected]

  • crypt/crypt_util.c (__init_des_r): Initialize current_salt
    and current_saltbits.

https://groups.google.com/forum/?fromgroups=#!topic/linux.debian.maint.glibc/Q88bwAp222w


Igor S.
http://nginx.com/services.html

On Sun, Mar 31, 2013 at 4:12 PM, Igor S. [email protected] wrote:

I was wondering if anyone knew what the bug was, as I am running on a
2002-10-29 Daniel Jacobowitz [email protected]

    * crypt/crypt_util.c (__init_des_r): Initialize current_salt
    and current_saltbits.

https://groups.google.com/forum/?fromgroups=#!topic/linux.debian.maint.glibc/Q88bwAp222w

Ok I just checked and this bug was fixed in glibc-2.3.2, which was
released
in March 2003… Any chance of removing the workaround as it is relying
on
fields that may not exist and are implementation internal?

Justin

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs