cov 10396: prevent a leak under error conditions (lib/sam.c)

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2830 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
Angus Salkeld 2010-05-14 02:08:30 +00:00
parent 45152f0902
commit d146ae8ec9

View File

@ -338,15 +338,6 @@ cs_error_t sam_data_store (
return (CS_ERR_BAD_HANDLE);
}
if (sam_internal_data.user_data_allocated < size) {
if ((new_data = realloc (sam_internal_data.user_data, size)) == NULL) {
return (CS_ERR_NO_MEMORY);
}
sam_internal_data.user_data_allocated = size;
} else {
new_data = sam_internal_data.user_data;
}
if (data == NULL) {
size = 0;
@ -386,6 +377,15 @@ cs_error_t sam_data_store (
sam_internal_data.user_data_allocated = 0;
sam_internal_data.user_data_size = 0;
} else {
if (sam_internal_data.user_data_allocated < size) {
if ((new_data = realloc (sam_internal_data.user_data, size)) == NULL) {
return (CS_ERR_NO_MEMORY);
}
sam_internal_data.user_data_allocated = size;
} else {
new_data = sam_internal_data.user_data;
}
sam_internal_data.user_data = new_data;
sam_internal_data.user_data_size = size;