diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-11-14 03:02:58 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-11-14 03:02:58 +0000 |
commit | 73e41247b93a74c9b2ec95a374736fdb98fcaac5 (patch) | |
tree | bb355100dc461d5b8a6c7ed896924083f92f9717 /string.c | |
parent | a48fac6e226d182d7b1a7d05f47bcd7f1d1e7370 (diff) | |
download | ruby-73e41247b93a74c9b2ec95a374736fdb98fcaac5.tar.gz |
string.c: prefer rb_syserr_fail
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 13 |
1 files changed, 5 insertions, 8 deletions
@@ -8842,8 +8842,10 @@ rb_str_crypt(VALUE str, VALUE salt) #ifdef HAVE_CRYPT_R VALUE databuf; struct crypt_data *data; +# define CRYPT_END() ALLOCV_END(databuf) #else extern char *crypt(const char *, const char *); +# define CRYPT_END() (void)0 #endif VALUE result; const char *s, *saltp; @@ -8881,17 +8883,12 @@ rb_str_crypt(VALUE str, VALUE salt) res = crypt(s, saltp); #endif if (!res) { -#ifdef HAVE_CRYPT_R int err = errno; - ALLOCV_END(databuf); - errno = err; -#endif - rb_sys_fail("crypt"); + CRYPT_END(); + rb_syserr_fail(err, "crypt"); } result = rb_str_new_cstr(res); -#ifdef HAVE_CRYPT_R - ALLOCV_END(databuf); -#endif + CRYPT_END(); FL_SET_RAW(result, OBJ_TAINTED_RAW(str) | OBJ_TAINTED_RAW(salt)); return result; } |