From 58d0277775487f835b6345c0c32c459163fd1f13 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 29 Aug 2012 05:59:05 +0000 Subject: ruby.c: magic numbers * ruby.c (ruby_init_loadpath_safe): remove magic numbers. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'ruby.c') diff --git a/ruby.c b/ruby.c index e6e43431f3..0fc524708a 100644 --- a/ruby.c +++ b/ruby.c @@ -411,9 +411,17 @@ ruby_init_loadpath_safe(int safe_level) #endif p = strrchr(libpath, '/'); if (p) { + static const char bindir[] = "/bin"; + static const char libdir[] = "/lib"; + const ptrdiff_t bindir_len = (ptrdiff_t)sizeof(bindir) - 1; + const ptrdiff_t libdir_len = (ptrdiff_t)sizeof(libdir) - 1; *p = 0; - if (p - libpath > 3 && !(STRCASECMP(p - 4, "/bin") && strcmp(p - 4, "/lib"))) { - p -= 4; + if (p - libpath >= bindir_len && !STRCASECMP(p - bindir_len, bindir)) { + p -= bindir_len; + *p = 0; + } + else if (p - libpath >= libdir_len && !strcmp(p - libdir_len, libdir)) { + p -= libdir_len; *p = 0; } } -- cgit v1.2.3