qemu: Fix a memory leak in qemudExtractTTYPath

qemudWaitForMonitor calls qemudReadLogOutput with qemudFindCharDevicePTYs
as callback. qemudFindCharDevicePTYs calls qemudExtractTTYPath to assign
a string to chr->data.file.path. Afterwards qemudWaitForMonitor may call
qemudFindCharDevicePTYsMonitor that overwrites chr->data.file.path without
freeing the old value. This results in leaking the memory allocated by
qemudExtractTTYPath.

Report an OOM error if the strdup in qemudFindCharDevicePTYsMonitor fails.
This commit is contained in:
Matthias Bolte 2010-01-09 21:19:08 +01:00
parent 4c81b0fdc5
commit f01ee2acc8

View File

@ -1433,7 +1433,13 @@ qemudFindCharDevicePTYsMonitor(virConnectPtr conn,
return -1; \
} \
\
VIR_FREE(chr->data.file.path); \
chr->data.file.path = strdup(path); \
\
if (chr->data.file.path == NULL) { \
virReportOOMError(conn); \
return -1; \
} \
} \
}