diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ext/etc/etc.c | 10 |
2 files changed, 14 insertions, 2 deletions
@@ -1,3 +1,9 @@ +Sat Jun 22 14:39:00 2013 Charlie Somerville <charliesome@ruby-lang.org> + + * 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 <akr@fsij.org> * 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 |