None
is a built-in object that represents the absence of a value. It is often used as a placeholder value for variables that only
sometimes hold a value or as a return value for method calls that have no result.
Attributes and methods of symbols that sometimes can be None
should only be accessed in circumstances where it is certain that they
are not set to None
. Otherwise, an AttributeError
is raised, and the program is interrupted. Hence, this issue indicates a
logical error as it results from incorrect assumptions about the state of variables or the results of computations.
What is the potential impact?
Issues of this type interrupt the normal execution of a program, causing it to crash or putting it into an inconsistent state. Therefore, this
issue might impact the availability and reliability of your application, or even result in data loss.
If a None
value can be induced by user input, this issue may even be exploited by attackers to disrupt your application or gain
information from stack traces.
Exceptions
None
does support a fixed set of special attributes like __class__
or __bool__
, and this issue is not raised
when accessing these attributes.