ManageIQ/manageiq-smartstate

View on GitHub
lib/db/MiqSqlite/MiqSqlite3.rb

Summary

Maintainability
A
0 mins
Test Coverage
B
85%

Wrap expressions with varying precedence with parentheses to avoid ambiguity.
Open

      @minLeaf  = (@usableSize - 12) * @minLeafFrac / 255 - 23
Severity: Minor
Found in lib/db/MiqSqlite/MiqSqlite3.rb by rubocop

Looks for expressions containing multiple binary operators where precedence is ambiguous due to lack of parentheses. For example, in 1 + 2 * 3, the multiplication will happen before the addition, but lexically it appears that the addition will happen first.

The cop does not consider unary operators (ie. !a or -b) or comparison operators (ie. a =~ b) because those are not ambiguous.

NOTE: Ranges are handled by Lint/AmbiguousRange.

Example:

# bad
a + b * c
a || b && c
a ** b + c

# good (different precedence)
a + (b * c)
a || (b && c)
(a ** b) + c

# good (same precedence)
a + b + c
a * b / c % d

Wrap expressions with varying precedence with parentheses to avoid ambiguity.
Open

      @maxLocal = (@usableSize - 12) * @maxEmbedFrac / 255 - 23
Severity: Minor
Found in lib/db/MiqSqlite/MiqSqlite3.rb by rubocop

Looks for expressions containing multiple binary operators where precedence is ambiguous due to lack of parentheses. For example, in 1 + 2 * 3, the multiplication will happen before the addition, but lexically it appears that the addition will happen first.

The cop does not consider unary operators (ie. !a or -b) or comparison operators (ie. a =~ b) because those are not ambiguous.

NOTE: Ranges are handled by Lint/AmbiguousRange.

Example:

# bad
a + b * c
a || b && c
a ** b + c

# good (different precedence)
a + (b * c)
a || (b && c)
(a ** b) + c

# good (same precedence)
a + b + c
a * b / c % d

Wrap expressions with varying precedence with parentheses to avoid ambiguity.
Open

      @minLocal = (@usableSize - 12) * @minEmbedFrac / 255 - 23
Severity: Minor
Found in lib/db/MiqSqlite/MiqSqlite3.rb by rubocop

Looks for expressions containing multiple binary operators where precedence is ambiguous due to lack of parentheses. For example, in 1 + 2 * 3, the multiplication will happen before the addition, but lexically it appears that the addition will happen first.

The cop does not consider unary operators (ie. !a or -b) or comparison operators (ie. a =~ b) because those are not ambiguous.

NOTE: Ranges are handled by Lint/AmbiguousRange.

Example:

# bad
a + b * c
a || b && c
a ** b + c

# good (different precedence)
a + (b * c)
a || (b && c)
(a ** b) + c

# good (same precedence)
a + b + c
a * b / c % d

The use of Kernel#open is a serious security risk.
Open

      open(fileName) unless fileName.nil?
Severity: Minor
Found in lib/db/MiqSqlite/MiqSqlite3.rb by rubocop

Checks for the use of Kernel#open and URI.open with dynamic data.

Kernel#open and URI.open enable not only file access but also process invocation by prefixing a pipe symbol (e.g., open("| ls")). So, it may lead to a serious security risk by using variable input to the argument of Kernel#open and URI.open. It would be better to use File.open, IO.popen or URI.parse#open explicitly.

NOTE: open and URI.open with literal strings are not flagged by this cop.

Safety:

This cop could register false positives if open is redefined in a class and then used without a receiver in that class.

Example:

# bad
open(something)
open("| #{something}")
URI.open(something)

# good
File.open(something)
IO.popen(something)
URI.parse(something).open

# good (literal strings)
open("foo.text")
open("| foo")
URI.open("http://example.com")

There are no issues that match your filters.

Category
Status