Currently, the UdpDumpAgent does not check the image ID -- which means that it will read memory when the archive does not in fact match the image,. e.g.:
This can be especially confusing because -- by default -- humility dump will use the UdpDumpAgent, which will result in a dump that is internally inconsistent as the dumped image doesn't necessarily correspond to the archive. (@rmustacc can into this particular pathology, and it is naturally very confusing!)
It seems that UdpDumpAgent should likely do what we do with the udprpcRpcHeader and have an image ID in the Header (currently, humpty::udp::Header has a version and message ID, but no image ID). Alternatively (and perhaps friendlier, from a backwards compatibility perspective), we could add a new humpty::udp::Request that asks for or sends the image ID. Either way, we shouldn't proceed if the archive doesn't match the image ID of the running system.
Currently, the
UdpDumpAgent
does not check the image ID -- which means that it will read memory when the archive does not in fact match the image,. e.g.:This can be especially confusing because -- by default --
humility dump
will use theUdpDumpAgent
, which will result in a dump that is internally inconsistent as the dumped image doesn't necessarily correspond to the archive. (@rmustacc can into this particular pathology, and it is naturally very confusing!)It seems that
UdpDumpAgent
should likely do what we do with theudprpc
RpcHeader
and have an image ID in theHeader
(currently,humpty::udp::Header
has a version and message ID, but no image ID). Alternatively (and perhaps friendlier, from a backwards compatibility perspective), we could add a newhumpty::udp::Request
that asks for or sends the image ID. Either way, we shouldn't proceed if the archive doesn't match the image ID of the running system.