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 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 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