mirror of https://gitee.com/openkylin/libvirt.git
rpc: don't destroy xdr before creating it in virNetMessageEncodeHeader
On OOM, xdr_destroy got called even though it wasn't created yet. Found by coverity: Error: UNINIT (CWE-457): libvirt-0.10.2/src/rpc/virnetmessage.c:214: var_decl: Declaring variable "xdr" without initializer. libvirt-0.10.2/src/rpc/virnetmessage.c:219: cond_true: Condition "virReallocN(&msg->buffer, 1UL /* sizeof (*msg->buffer) */, msg->bufferLength) < 0", taking true branch libvirt-0.10.2/src/rpc/virnetmessage.c:221: goto: Jumping to label "cleanup" libvirt-0.10.2/src/rpc/virnetmessage.c:257: label: Reached label "cleanup" libvirt-0.10.2/src/rpc/virnetmessage.c:258: uninit_use: Using uninitialized value "xdr.x_ops".
This commit is contained in:
parent
8b235d4057
commit
6e1fc35546
|
@ -218,7 +218,7 @@ int virNetMessageEncodeHeader(virNetMessagePtr msg)
|
|||
msg->bufferLength = VIR_NET_MESSAGE_MAX + VIR_NET_MESSAGE_LEN_MAX;
|
||||
if (VIR_REALLOC_N(msg->buffer, msg->bufferLength) < 0) {
|
||||
virReportOOMError();
|
||||
goto cleanup;
|
||||
return ret;
|
||||
}
|
||||
msg->bufferOffset = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue