A type confusion issue was discovered in CCN-lite 2, leading to a memory access violation and a failure of the nonce feature (which, for example, helped with loop prevention). ccnl_fwd_handleInterest assumes that the union member s is of type ccnl_pktdetail_ndntlv_s. However, if the type is in fact struct ccnl_pktdetail_ccntlv_s or struct ccnl_pktdetail_iottlv_s, the memory at that point is either uninitialised or points to data that is not a nonce, which renders the code using the local variable nonce pointless. A later nonce check is insufficient.
Se ha descubierto un problema de confusión de tipos en CCN-lite 2 que conduce a una violación de acceso a la memoria y un fallo de la característica nonce (que, por ejemplo, ayudaba con la prevención de bucles). ccnl_fwd_handleInterest asume que el miembro de unión s es de tipo ccnl_pktdetail_ndntlv_s. Sin embargo, si el tipo es en realidad es el struct ccnl_pktdetail_ccntlv_s o el struct ccnl_pktdetail_iottlv_s, la memoria en ese punto o no está inicializado o señala a datos que no son nonce, que representan el código empleando la variable local nonce sin punto. La comprobación nonce posterior es insuficiente.