From 24c105a2511dd80b2459af5a4d684131b8777932 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 09:36:44 +0100 Subject: Fixed dead assignment in 'backtrace.c' reported by 'clang-analyzer' --- src/backtrace.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/backtrace.c b/src/backtrace.c index 7768a3206..1e1f9fa1a 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -71,7 +71,6 @@ output_backtrace(mrb_state *mrb, mrb_int ciidx, mrb_code *pc0, output_stream_fun for (i = ciidx; i >= 0; i--) { ci = &mrb->c->cibase[i]; filename = NULL; - lineno = -1; if (!ci->proc) continue; if (MRB_PROC_CFUNC_P(ci->proc)) { -- cgit v1.2.3 From 4027035cf41b0657f28f59f3956e5bfa5b06c82c Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 09:37:07 +0100 Subject: Fixed dead assignment in 'parse.y' reported by 'clang-analyzer' --- src/parse.y | 1 - 1 file changed, 1 deletion(-) diff --git a/src/parse.y b/src/parse.y index 9841351ea..1f4e36174 100644 --- a/src/parse.y +++ b/src/parse.y @@ -4243,7 +4243,6 @@ parser_yylex(parser_state *p) return '='; case '<': - last_state = p->lstate; c = nextc(p); if (c == '<' && p->lstate != EXPR_DOT && -- cgit v1.2.3 From da55b5040928c69426c49b8a04541b5adf0abc1d Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 09:44:41 +0100 Subject: Fixed dead assignment in 'vm.c' reported by 'clang-analyzer' --- src/vm.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/vm.c b/src/vm.c index 9a0f03aba..85417fe14 100644 --- a/src/vm.c +++ b/src/vm.c @@ -784,7 +784,6 @@ RETRY_TRY_BLOCK: MRB_TRY(&c_jmp) { if (exc_catched) { - exc_catched = FALSE; goto L_RAISE; } mrb->jmp = &c_jmp; -- cgit v1.2.3 From 44a5809224e819bf8bcca4ae9a8c5ea5bf4cefd7 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 10:09:28 +0100 Subject: Fixed possible division by zero in 'codegen.c' reported by 'clang-analyzer' --- src/codegen.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/codegen.c b/src/codegen.c index c7b8e2d74..e2a43e5fc 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1106,21 +1106,23 @@ readint_mrb_int(codegen_scope *s, const char *p, int base, mrb_bool neg, mrb_boo codegen_error(s, "malformed readint input"); } - if (neg) { - if ((MRB_INT_MIN + n)/base > result) { - *overflow = TRUE; - return 0; + if(base > 0) { + if (neg) { + if ((MRB_INT_MIN + n)/base > result) { + *overflow = TRUE; + return 0; + } + result *= base; + result -= n; } - result *= base; - result -= n; - } - else { - if ((MRB_INT_MAX - n)/base < result) { - *overflow = TRUE; - return 0; + else { + if ((MRB_INT_MAX - n)/base < result) { + *overflow = TRUE; + return 0; + } + result *= base; + result += n; } - result *= base; - result += n; } p++; } -- cgit v1.2.3 From a5cadf4becd06d3b3ec0873adfc068010c6559c9 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 10:13:18 +0100 Subject: Fixed dead increment in 'dump.c' reported by 'clang-analyzer' --- src/dump.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/dump.c b/src/dump.c index 1acb466a0..b820f1a68 100644 --- a/src/dump.c +++ b/src/dump.c @@ -343,7 +343,6 @@ write_section_irep(mrb_state *mrb, mrb_irep *irep, uint8_t *bin) if (result != MRB_DUMP_OK) { return result; } - cur += rsize; section_size += rsize; write_section_irep_header(mrb, section_size, bin); -- cgit v1.2.3 From 29f14e728d319d9fc80702ba78959c1957944767 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 10:50:15 +0100 Subject: Fixed dereference to null pointer in 'codegen.c' reported by 'clang-analyzer' --- src/codegen.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/codegen.c b/src/codegen.c index e2a43e5fc..3578c2794 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -446,8 +446,10 @@ new_lit(codegen_scope *s, mrb_value val) s->irep->pool = (mrb_value *)codegen_realloc(s, s->irep->pool, sizeof(mrb_value)*s->pcapa); } - pv = &s->irep->pool[s->irep->plen]; - i = s->irep->plen++; + if (&s->irep->pool[s->irep->plen] != NULL) { + pv = &s->irep->pool[s->irep->plen]; + i = s->irep->plen++; + } switch (mrb_type(val)) { case MRB_TT_STRING: -- cgit v1.2.3 From e344d662f11694d58ad5dc59a848721573419148 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 10:50:26 +0100 Subject: Fixed dereference to null pointer in 'codegen.c' reported by 'clang-analyzer' --- src/codegen.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/codegen.c b/src/codegen.c index 3578c2794..2204ac4ed 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -477,7 +477,9 @@ new_msym(codegen_scope *s, mrb_sym sym) { size_t i, len; + if (s->irep == NULL) return 0; len = s->irep->slen; + if (len > 256) len = 256; for (i=0; iirep->syms[i] == sym) return i; -- cgit v1.2.3 From 13abc9c4a142bccd9610b2fbf12098c6e25caeeb Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 10:54:18 +0100 Subject: Revert "Fixed dereference to null pointer in 'codegen.c' reported by 'clang-analyzer'" This reverts commit 29f14e728d319d9fc80702ba78959c1957944767. --- src/codegen.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/codegen.c b/src/codegen.c index 2204ac4ed..814a74f6e 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -446,10 +446,8 @@ new_lit(codegen_scope *s, mrb_value val) s->irep->pool = (mrb_value *)codegen_realloc(s, s->irep->pool, sizeof(mrb_value)*s->pcapa); } - if (&s->irep->pool[s->irep->plen] != NULL) { - pv = &s->irep->pool[s->irep->plen]; - i = s->irep->plen++; - } + pv = &s->irep->pool[s->irep->plen]; + i = s->irep->plen++; switch (mrb_type(val)) { case MRB_TT_STRING: -- cgit v1.2.3 From a250050077e175cbb9e704eaabb53b8eb8adc868 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 12:06:56 +0100 Subject: Fixed dead assignment in 'parser.y' reported by 'clang-analyzer' --- src/parse.y | 1 - 1 file changed, 1 deletion(-) diff --git a/src/parse.y b/src/parse.y index 1f4e36174..38a952788 100644 --- a/src/parse.y +++ b/src/parse.y @@ -5159,7 +5159,6 @@ parser_yylex(parser_state *p) { int result = 0; - last_state = p->lstate; switch (tok(p)[0]) { case '$': p->lstate = EXPR_END; -- cgit v1.2.3 From 1a8e0ba4e88252b030fd7b60116bc1e984f373c2 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 12:11:23 +0100 Subject: Fixed dead assignment in 'parser.y' reported by 'clang-analyzer' --- src/parse.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parse.y b/src/parse.y index 38a952788..fc8eaa321 100644 --- a/src/parse.y +++ b/src/parse.y @@ -4373,7 +4373,7 @@ parser_yylex(parser_state *p) p->lstate = EXPR_VALUE; return '?'; } - token_column = newtok(p); + newtok(p); /* need support UTF-8 if configured */ if ((isalnum(c) || c == '_')) { int c2 = nextc(p); -- cgit v1.2.3 From 6b642637b3c7f3ebe8e290eadfd892030c57c993 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 12:11:28 +0100 Subject: Fixed dead assignment in 'parser.y' reported by 'clang-analyzer' --- src/parse.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parse.y b/src/parse.y index fc8eaa321..e88437602 100644 --- a/src/parse.y +++ b/src/parse.y @@ -4537,7 +4537,7 @@ parser_yylex(parser_state *p) is_float = seen_point = seen_e = nondigit = 0; p->lstate = EXPR_END; - token_column = newtok(p); + newtok(p); if (c == '-' || c == '+') { tokadd(p, c); c = nextc(p); -- cgit v1.2.3 From 45b8562d8ddd2e92ceef4857ccaf6ac6050e116e Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 16:44:22 +0100 Subject: Using 'mrb_assert' instead of an returning 0 while checking s->irep in codegen.c. --- src/codegen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/codegen.c b/src/codegen.c index 814a74f6e..03c752826 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -475,9 +475,9 @@ new_msym(codegen_scope *s, mrb_sym sym) { size_t i, len; - if (s->irep == NULL) return 0; - len = s->irep->slen; + mrb_assert(s->irep); + len = s->irep->slen; if (len > 256) len = 256; for (i=0; iirep->syms[i] == sym) return i; -- cgit v1.2.3 From 61032c5ab03ee9d71875b8cb63c7cd5702d56ff7 Mon Sep 17 00:00:00 2001 From: Jose Narvaez Date: Fri, 13 Jun 2014 16:50:02 +0100 Subject: Rolling back change induced because of 'clang-analizer' report. --- src/vm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vm.c b/src/vm.c index 85417fe14..9a0f03aba 100644 --- a/src/vm.c +++ b/src/vm.c @@ -784,6 +784,7 @@ RETRY_TRY_BLOCK: MRB_TRY(&c_jmp) { if (exc_catched) { + exc_catched = FALSE; goto L_RAISE; } mrb->jmp = &c_jmp; -- cgit v1.2.3