The buffer that allocated in the virFDStreamThreadDoRead() can be
automatically freed, or if saved into the message structure it
can be stolen.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
virFDStreamMsgPtr msg = NULL;
int inData = 0;
long long sectionLen = 0;
- char *buf = NULL;
+ g_autofree char *buf = NULL;
ssize_t got;
if (sparse && *dataLen == 0) {
}
msg->type = VIR_FDSTREAM_MSG_TYPE_DATA;
- msg->stream.data.buf = buf;
+ msg->stream.data.buf = g_steal_pointer(&buf);
msg->stream.data.len = got;
- buf = NULL;
if (sparse)
*dataLen -= got;
}
return got;
error:
- VIR_FREE(buf);
virFDStreamMsgFree(msg);
return -1;
}