Commit bb90989dbf6077044403da6727831aebe3f6f6bd
1 parent
b5084307
Exists in
master
and in
3 other branches
Fixing memory leaks.
Showing
2 changed files
with
23 additions
and
1 deletions
Show diff stats
src/lib3270/iocalls.c
... | ... | @@ -204,6 +204,8 @@ static void * internal_add_poll(H3270 *session, int fd, LIB3270_IO_FLAG flag, vo |
204 | 204 | ip->userdata = userdata; |
205 | 205 | ip->call = call; |
206 | 206 | |
207 | + ip->next = session->inputs; | |
208 | + | |
207 | 209 | session->inputs = ip; |
208 | 210 | session->inputs_changed = 1; |
209 | 211 | |
... | ... | @@ -565,7 +567,7 @@ static int internal_wait(H3270 *hSession, int seconds) |
565 | 567 | return 0; |
566 | 568 | } |
567 | 569 | |
568 | -static void internal_ring_bell(H3270 *session) | |
570 | +static void internal_ring_bell(H3270 *session unused) | |
569 | 571 | { |
570 | 572 | return; |
571 | 573 | } | ... | ... |
src/lib3270/session.c
... | ... | @@ -108,6 +108,26 @@ void lib3270_session_free(H3270 *h) |
108 | 108 | release_pointer(h->text); |
109 | 109 | release_pointer(h->zero_buf); |
110 | 110 | |
111 | + release_pointer(h->sbbuf); | |
112 | + release_pointer(h->tabs); | |
113 | + | |
114 | + // Release timeouts | |
115 | + while(h->timeouts) | |
116 | + { | |
117 | + timeout_t *t = h->timeouts; | |
118 | + h->timeouts = t->next; | |
119 | + | |
120 | + lib3270_free(t); | |
121 | + } | |
122 | + | |
123 | + // Release inputs; | |
124 | + while(h->inputs) | |
125 | + { | |
126 | + input_t *ip = h->inputs; | |
127 | + h->inputs = ip->next; | |
128 | + lib3270_free(ip); | |
129 | + } | |
130 | + | |
111 | 131 | trace("Releasing session %p",h); |
112 | 132 | lib3270_free(h); |
113 | 133 | ... | ... |