summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-22 10:05:49 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-22 10:05:49 +0000
commite0060732f13f1f930feeb390e883f307dd0f89d4 (patch)
treeb817c6fe39a4f25ccc453d1ebdd3d2efffebf4ea /parse.y
parent256eae162c094584146c52e77f2f36cb1628cbfc (diff)
* parse.y (rb_enc_symname2_p): get rid of potential out-of-bound
access. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y4
1 files changed, 2 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index aca2b6ac3e..f822bac773 100644
--- a/parse.y
+++ b/parse.y
@@ -9685,7 +9685,7 @@ rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
const char *e = m + len;
int localid = FALSE;
- if (!m) return FALSE;
+ if (!m || len <= 0) return FALSE;
switch (*m) {
case '\0':
return FALSE;
@@ -9738,8 +9738,8 @@ rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
break;
case '!':
+ if (len == 1) return FALSE;
switch (*++m) {
- case '\0': return TRUE;
case '=': case '~': ++m; break;
default: return FALSE;
}