Fix memory leak when loading session files.

This commit is contained in:
Bert Vermeulen 2013-11-29 17:32:55 +01:00
parent b3916147a5
commit 016f2e005d
1 changed files with 7 additions and 5 deletions

View File

@ -81,11 +81,6 @@ static int receive_data(int fd, int revents, void *cb_data)
/* Already done with this instance. */ /* Already done with this instance. */
continue; continue;
if (!(buf = g_try_malloc(CHUNKSIZE))) {
sr_err("%s: buf malloc failed", __func__);
return FALSE;
}
if (!vdev->capfile) { if (!vdev->capfile) {
/* No capture file opened yet, or finished with the last /* No capture file opened yet, or finished with the last
* chunked one. */ * chunked one. */
@ -133,6 +128,11 @@ static int receive_data(int fd, int revents, void *cb_data)
} }
} }
if (!(buf = g_try_malloc(CHUNKSIZE))) {
sr_err("%s: buf malloc failed", __func__);
return FALSE;
}
ret = zip_fread(vdev->capfile, buf, CHUNKSIZE); ret = zip_fread(vdev->capfile, buf, CHUNKSIZE);
if (ret > 0) { if (ret > 0) {
got_data = TRUE; got_data = TRUE;
@ -155,9 +155,11 @@ static int receive_data(int fd, int revents, void *cb_data)
} else { } else {
/* There might be more chunks, so don't fall through /* There might be more chunks, so don't fall through
* to the SR_DF_END here. */ * to the SR_DF_END here. */
g_free(buf);
return TRUE; return TRUE;
} }
} }
g_free(buf);
} }
if (!got_data) { if (!got_data) {