diff --git a/ChangeLog b/ChangeLog index f422826da7..7eb6ce68ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sat Jun 22 14:39:00 2013 Charlie Somerville + + * ext/etc/etc.c (Init_etc): omit 'passwd' from definition of Etc::Passwd + if HAVE_STRUCT_PASSWD_PW_PASSWD is not defined to prevent mismatch of + fields and values in setup_passwd + Sat Jun 22 14:35:40 2013 Tanaka Akira * ext/dl/cfunc.c (rb_dlcfunc_call): Use rb_big_pack instead of diff --git a/ext/etc/etc.c b/ext/etc/etc.c index 1c52535c40..7fbe2e9ae0 100644 --- a/ext/etc/etc.c +++ b/ext/etc/etc.c @@ -673,11 +673,17 @@ Init_etc(void) rb_define_module_function(mEtc, "systmpdir", etc_systmpdir, 0); sPasswd = rb_struct_define(NULL, - "name", "passwd", "uid", "gid", + "name", +#ifdef HAVE_STRUCT_PASSWD_PW_PASSWD + "passwd", +#endif + "uid", + "gid", #ifdef HAVE_STRUCT_PASSWD_PW_GECOS "gecos", #endif - "dir", "shell", + "dir", + "shell", #ifdef HAVE_STRUCT_PASSWD_PW_CHANGE "change", #endif