summaryrefslogtreecommitdiffstats
path: root/util/src/platforms/os400
diff options
context:
space:
mode:
authorGravatar nadiramra2010-05-31 03:43:54 +0000
committerGravatar nadiramra2010-05-31 03:43:54 +0000
commit2c853b4c44ff3e27ee2f0e018a983d4b08de25c2 (patch)
treeea790a3594b856a6e26ce5d93e29d812df09491b /util/src/platforms/os400
parent5a2112ba79e47706779db76ddd504b89d9714f37 (diff)
downloadaxis2c-2c853b4c44ff3e27ee2f0e018a983d4b08de25c2.tar.gz
axis2c-2c853b4c44ff3e27ee2f0e018a983d4b08de25c2.tar.bz2
AXIS2C-1473 some leaks in thread_unix.c and thread_pool.c
git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@949662 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'util/src/platforms/os400')
-rw-r--r--util/src/platforms/os400/thread_os400.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/util/src/platforms/os400/thread_os400.c b/util/src/platforms/os400/thread_os400.c
index 0269f9e..8f1abf7 100644
--- a/util/src/platforms/os400/thread_os400.c
+++ b/util/src/platforms/os400/thread_os400.c
@@ -28,11 +28,9 @@ axutil_threadattr_create(
new = AXIS2_MALLOC(allocator, sizeof(axutil_threadattr_t));
if (!new)
- {
return NULL;
- }
- stat = pthread_attr_init(&(new->attr));
+ stat = pthread_attr_init(&(new->attr));
if (stat != 0)
{
AXIS2_FREE(allocator, new);
@@ -107,12 +105,12 @@ axutil_thread_create(
new = (axutil_thread_t *) AXIS2_MALLOC(allocator, sizeof(axutil_thread_t));
if (!new)
- {
return NULL;
- }
+
new->td = (pthread_t *) AXIS2_MALLOC(allocator, sizeof(pthread_t));
if (!new->td)
{
+ AXIS2_FREE(allocator, new);
return NULL;
}
@@ -121,18 +119,15 @@ axutil_thread_create(
new->try_exit = AXIS2_FALSE;
if (attr)
- {
temp = &(attr->attr);
- }
- else
- {
- temp = NULL;
- }
if ((stat = pthread_create(new->td, temp, dummy_worker, new)) == 0)
{
return new;
}
+
+ AXIS2_FREE(allocator, new->td);
+ AXIS2_FREE(allocator, new);
return NULL;
}