On Wed, May 08, 2024 at 01:11:31PM GMT, Daniel P. Berrangé wrote:
When testPipeFeeder copies the XML document into the padded buffer,
it
tells virStrcpy that 'xmlsize' bytes are available. This is under
reporting size by 1 byte, and as a result it fails to copy the trailing
'\n' replacing it when '\0'. The return value of virStrcpy wasn't
*replacing it with
checked, but was reporting this truncation.
When testPipeFeeder then sends the padded buffer down the pipe, it askes
*asks
to send 'emptyspace + xmlsize + 1' bytes, which means it
sends the data,
as well as the trailing '\0' terminator.
Both bugs combined mean it is sending '\0\0' as the last bytes, instead
of '\n' which was intended. When virFileReadAll reads data from the
pipe, it ends up adding another '\0' resulting in in a very NUL
*resulting in a very
Reviewed-by: Andrea Bolognani <abologna(a)redhat.com>
--
Andrea Bolognani / Red Hat / Virtualization