diff --git a/parameter/Element.cpp b/parameter/Element.cpp index 547c5914d..c761cce1d 100644 --- a/parameter/Element.cpp +++ b/parameter/Element.cpp @@ -52,37 +52,43 @@ CElement::~CElement() // Logging void CElement::log_info(const char* strMessage, ...) const { + int ret_val; char *pacBuffer; va_list listPointer; va_start(listPointer, strMessage); - vasprintf(&pacBuffer, strMessage, listPointer); + ret_val = vasprintf(&pacBuffer, strMessage, listPointer); va_end(listPointer); - if (pacBuffer != NULL) { - doLog(false, pacBuffer); + if (ret_val == -1) { + return; } + doLog(true, pacBuffer); + free(pacBuffer); } void CElement::log_warning(const char* strMessage, ...) const { + int ret_val; char *pacBuffer; va_list listPointer; va_start(listPointer, strMessage); - vasprintf(&pacBuffer, strMessage, listPointer); + ret_val = vasprintf(&pacBuffer, strMessage, listPointer); va_end(listPointer); - if (pacBuffer != NULL) { - doLog(true, pacBuffer); + if (ret_val == -1) { + return; } + doLog(true, pacBuffer); + free(pacBuffer); } diff --git a/parameter/SubsystemObject.cpp b/parameter/SubsystemObject.cpp index e6b7b442d..0d9dc92ed 100644 --- a/parameter/SubsystemObject.cpp +++ b/parameter/SubsystemObject.cpp @@ -215,37 +215,43 @@ void CSubsystemObject::blackboardWrite(const void* pvData, uint32_t uiSize) // Logging void CSubsystemObject::log_info(std::string strMessage, ...) const { + int ret_val; char *pacBuffer; va_list listPointer; va_start(listPointer, strMessage); - vasprintf(&pacBuffer, strMessage.c_str(), listPointer); + ret_val = vasprintf(&pacBuffer, strMessage.c_str(), listPointer); va_end(listPointer); - if (pacBuffer != NULL) { - _pInstanceConfigurableElement->log_info("%s", pacBuffer); + if (ret_val == -1) { + return ; } + _pInstanceConfigurableElement->log_info("%s", pacBuffer); + free(pacBuffer); } void CSubsystemObject::log_warning(std::string strMessage, ...) const { + int ret_val; char *pacBuffer; va_list listPointer; va_start(listPointer, strMessage); - vasprintf(&pacBuffer, strMessage.c_str(), listPointer); + ret_val = vasprintf(&pacBuffer, strMessage.c_str(), listPointer); va_end(listPointer); - if (pacBuffer != NULL) { - _pInstanceConfigurableElement->log_warning("%s", pacBuffer); + if (ret_val == -1) { + return ; } + _pInstanceConfigurableElement->log_warning("%s", pacBuffer); + free(pacBuffer); }