Don't leak memory when closing a pppdump trace file.
The second argument to g_ptr_array_free() does not indicate to glib to free the objects that the pointers in the GPtrArray refer to, but simply whether or not the free the block of pointers. We have to free the objects ourselves. svn path=/trunk/; revision=4391
This commit is contained in:
parent
7e092f2dd8
commit
82380ce2c4
|
@ -1,6 +1,6 @@
|
|||
/* pppdump.c
|
||||
*
|
||||
* $Id: pppdump.c,v 1.10 2001/11/13 23:55:44 gram Exp $
|
||||
* $Id: pppdump.c,v 1.11 2001/12/13 05:49:12 gram Exp $
|
||||
*
|
||||
* Copyright (c) 2000 by Gilbert Ramirez <gram@alumni.rice.edu>
|
||||
*
|
||||
|
@ -589,7 +589,11 @@ pppdump_close(wtap *wth)
|
|||
}
|
||||
|
||||
if (state->pids) { /* should always be TRUE */
|
||||
g_ptr_array_free(state->pids, TRUE); /* free data, too */
|
||||
int i;
|
||||
for (i = 0; i < g_ptr_array_len(state->pids); i++) {
|
||||
g_free(g_ptr_array_index(state->pids, i));
|
||||
}
|
||||
g_ptr_array_free(state->pids, TRUE);
|
||||
}
|
||||
|
||||
g_free(state);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* wtap-int.h
|
||||
*
|
||||
* $Id: wtap-int.h,v 1.17 2001/12/04 08:26:00 guy Exp $
|
||||
* $Id: wtap-int.h,v 1.18 2001/12/13 05:49:13 gram Exp $
|
||||
*
|
||||
* Wiretap Library
|
||||
* Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu>
|
||||
|
@ -347,4 +347,9 @@ struct wtap_dumper {
|
|||
} \
|
||||
G_STMT_END
|
||||
|
||||
/* glib doesn't have g_ptr_array_len of all things!*/
|
||||
#ifndef g_ptr_array_len
|
||||
#define g_ptr_array_len(a) ((a)->len)
|
||||
#endif
|
||||
|
||||
#endif /* __WTAP_INT_H__ */
|
||||
|
|
Loading…
Reference in New Issue