mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-08-04 13:39:08 +00:00
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:
parent
45152f0902
commit
d146ae8ec9
18
lib/sam.c
18
lib/sam.c
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user