mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-30 17:45:23 +00:00
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".
(cherry picked from commit 6e1fc35546
)
This commit is contained in:
parent
caf1377a12
commit
e8d28ec3fa
@ -218,7 +218,7 @@ int virNetMessageEncodeHeader(virNetMessagePtr msg)
|
|||||||
msg->bufferLength = VIR_NET_MESSAGE_MAX + VIR_NET_MESSAGE_LEN_MAX;
|
msg->bufferLength = VIR_NET_MESSAGE_MAX + VIR_NET_MESSAGE_LEN_MAX;
|
||||||
if (VIR_REALLOC_N(msg->buffer, msg->bufferLength) < 0) {
|
if (VIR_REALLOC_N(msg->buffer, msg->bufferLength) < 0) {
|
||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
goto cleanup;
|
return ret;
|
||||||
}
|
}
|
||||||
msg->bufferOffset = 0;
|
msg->bufferOffset = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user