Reino: Code Quality
Una mala calidad del código lleva a un comportamiento no predecible. Desde la perspectiva de un usuario, muchas veces también supone una usabilidad limitada. Pero para un atacante es una oportunidad para atacar al sistema de formas insospechadas.
Dead Code
Abstract
Nunca se ejecutará esta instrucción.
Explanation
El código adyacente imposibilita la ejecución de esta instrucción.
Ejemplo: es imposible cumplir la condición para la segunda instrucción
Ejemplo: es imposible cumplir la condición para la segunda instrucción
if
. Exige que la variable s
sea no nula, mientras que en la única ruta de acceso en la que a s
se le puede asignar un valor no nulo hay una instrucción return
.
String s = null;
if (b) {
s = "Yes";
return;
}
if (s != null) {
Dead();
}
desc.internal.cpp.dead_code
Abstract
Una función define código sin efecto.
Explanation
En Solidity, los desarrolladores pueden escribir código que no tenga ningún efecto, lo que puede provocar un comportamiento inesperado o código que no realiza la acción prevista.
Ejemplo 1: El siguiente código intenta actualizar el saldo de
Ejemplo 1: El siguiente código intenta actualizar el saldo de
msg.sender
, pero usa ==
en lugar de =
para hacerlo, lo cual no tiene ningún efecto.
function deposit(uint amount) public payable {
require(msg.value == amount, 'incorrect amount');
balance[msg.sender] == amount;
}
desc.structural.solidity.swc135