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 | ... | ... |