Commit bb90989dbf6077044403da6727831aebe3f6f6bd

Authored by Perry Werneck
1 parent b5084307

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,6 +204,8 @@ static void * internal_add_poll(H3270 *session, int fd, LIB3270_IO_FLAG flag, vo
204 ip->userdata = userdata; 204 ip->userdata = userdata;
205 ip->call = call; 205 ip->call = call;
206 206
  207 + ip->next = session->inputs;
  208 +
207 session->inputs = ip; 209 session->inputs = ip;
208 session->inputs_changed = 1; 210 session->inputs_changed = 1;
209 211
@@ -565,7 +567,7 @@ static int internal_wait(H3270 *hSession, int seconds) @@ -565,7 +567,7 @@ static int internal_wait(H3270 *hSession, int seconds)
565 return 0; 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 return; 572 return;
571 } 573 }
src/lib3270/session.c
@@ -108,6 +108,26 @@ void lib3270_session_free(H3270 *h) @@ -108,6 +108,26 @@ void lib3270_session_free(H3270 *h)
108 release_pointer(h->text); 108 release_pointer(h->text);
109 release_pointer(h->zero_buf); 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 trace("Releasing session %p",h); 131 trace("Releasing session %p",h);
112 lib3270_free(h); 132 lib3270_free(h);
113 133