summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-01-28 22:56:27 +0900
committerGitHub <[email protected]>2021-01-28 22:56:27 +0900
commit0030417aceb071e824e159d8d11930b376a7adaf (patch)
treeefa0f9a4aa5182b433e95d5923fa8ec7f1474b13 /src
parentbb42c1b286844e37aa8110e1b2d9b5dd9eff8f3e (diff)
parent3d8a8fb6613f177416cc09e81e2a0082db006926 (diff)
downloadmruby-0030417aceb071e824e159d8d11930b376a7adaf.tar.gz
mruby-0030417aceb071e824e159d8d11930b376a7adaf.zip
Merge pull request #5305 from dearblue/symbol0
Check first `0` when converting symbols into strings
Diffstat (limited to 'src')
-rw-r--r--src/symbol.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/symbol.c b/src/symbol.c
index b15e0f11c..3cd925d99 100644
--- a/src/symbol.c
+++ b/src/symbol.c
@@ -303,6 +303,7 @@ mrb_check_intern_str(mrb_state *mrb, mrb_value str)
static const char*
sym2name_len(mrb_state *mrb, mrb_sym sym, char *buf, mrb_int *lenp)
{
+ if (sym == 0) goto outofsym;
if (SYMBOL_INLINE_P(sym)) return sym_inline_unpack(sym, buf, lenp);
#ifndef MRB_NO_PRESYM
@@ -313,7 +314,8 @@ sym2name_len(mrb_state *mrb, mrb_sym sym, char *buf, mrb_int *lenp)
#endif
sym -= MRB_PRESYM_MAX;
- if (sym == 0 || mrb->symidx < sym) {
+ if (mrb->symidx < sym) {
+ outofsym:
if (lenp) *lenp = 0;
return NULL;
}