diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-03-17 16:58:31 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-03-17 16:58:31 +0900 |
| commit | b588e5a5b7cfc0e7a1c84c235a0f5daa5bf83a47 (patch) | |
| tree | 3452bf56f464cf3556d63782696c42b2bbb4880e /mrbgems/mruby-metaprog/src | |
| parent | 15b6499c8b9197e885713a7896eaf45419fbef47 (diff) | |
| download | mruby-b588e5a5b7cfc0e7a1c84c235a0f5daa5bf83a47.tar.gz mruby-b588e5a5b7cfc0e7a1c84c235a0f5daa5bf83a47.zip | |
Fix class/instance variable name validation
- `@@?` etc are invalid class variable name.
- `@1` etc are invalid instance variable name.
Diffstat (limited to 'mrbgems/mruby-metaprog/src')
| -rw-r--r-- | mrbgems/mruby-metaprog/src/metaprog.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/mrbgems/mruby-metaprog/src/metaprog.c b/mrbgems/mruby-metaprog/src/metaprog.c index 75913dab5..0aafb4c34 100644 --- a/mrbgems/mruby-metaprog/src/metaprog.c +++ b/mrbgems/mruby-metaprog/src/metaprog.c @@ -403,7 +403,8 @@ mod_define_singleton_method(mrb_state *mrb, mrb_value self) static mrb_bool cv_name_p(mrb_state *mrb, const char *name, mrb_int len) { - return len > 2 && name[0] == '@' && name[1] == '@'; + return len > 2 && name[0] == '@' && name[1] == '@' && + !ISDIGIT(name[2]) && mrb_ident_p(name+2, len-2); } static void |
