[Frugalware-git] firepl: fix memory leak in dpa

James Buren ryuo at frugalware.org
Tue May 8 13:02:02 CEST 2012


Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=firepl.git;a=commitdiff;h=989b28d9785c4725078b98ec7ad93e6982f24e0c

commit 989b28d9785c4725078b98ec7ad93e6982f24e0c
Author: James Buren <ryuo at frugalware.org>
Date:   Tue May 8 06:01:50 2012 -0500

fix memory leak in dpa

diff --git a/dpa.c b/dpa.c
index fad69c0..f5c3879 100644
--- a/dpa.c
+++ b/dpa.c
@@ -23,6 +23,8 @@ extern dpa *dpa_open(void)

self->size = DPA_DEFAULT_SIZE;

+	dpa_append(self,0);
+
return self;
}

@@ -43,14 +45,14 @@ extern void dpa_append(dpa *self,void *p)
++self->len;
}

-extern void **dpa_fetch(const dpa *self)
+extern void *dpa_fetch(const dpa *self)
{
assert(self);

return self->ptr;
}

-extern void **dpa_close(dpa *self,void (*func) (void *p))
+extern void *dpa_close(dpa *self,void (*func) (void *p))
{
size_t n;
void **p;
@@ -61,6 +63,8 @@ extern void **dpa_close(dpa *self,void (*func) (void *p))
{
for( n = 0 ; n < self->len ; ++n )
func(self->ptr[n]);
+
+		free(self->ptr);

p = 0;
}
diff --git a/dpa.h b/dpa.h
index f46305c..97824fe 100644
--- a/dpa.h
+++ b/dpa.h
@@ -4,5 +4,5 @@ typedef struct _dpa dpa;

extern dpa *dpa_open(void);
extern void dpa_append(dpa *self,void *p);
-extern void **dpa_fetch(const dpa *self);
-extern void **dpa_close(dpa *self,void (*func) (void *p));
+extern void *dpa_fetch(const dpa *self);
+extern void *dpa_close(dpa *self,void (*func) (void *p));


More information about the Frugalware-git mailing list