You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The software bus is a broadcast mechanism and sends the same memory buffers to all subscribed applications/pipes. The intent is that the data buffer should be const but for backward compatibility reasons the API does not enforce this.
However, CF actively writes to and modifies its received buffers, basically treating it as its own temporary storage location. If this is combined in a system with another app that subscribes to CF traffic (e.g. Data store, DTN, or some other traffic monitor) then all other apps will see the same modifications to the data buffer, and this effectively creates a race condition / unpredictable behavior.
All received software bus buffers should be qualified as const in application code, and they should not be written to. Apps should create their own buffers for temporary storage.
The text was updated successfully, but these errors were encountered:
The software bus is a broadcast mechanism and sends the same memory buffers to all subscribed applications/pipes. The intent is that the data buffer should be
const
but for backward compatibility reasons the API does not enforce this.However, CF actively writes to and modifies its received buffers, basically treating it as its own temporary storage location. If this is combined in a system with another app that subscribes to CF traffic (e.g. Data store, DTN, or some other traffic monitor) then all other apps will see the same modifications to the data buffer, and this effectively creates a race condition / unpredictable behavior.
All received software bus buffers should be qualified as
const
in application code, and they should not be written to. Apps should create their own buffers for temporary storage.The text was updated successfully, but these errors were encountered: