hameg-hmo: free memory that was allocated by SCPI get routines

The SCPI get routines may allocate memory for response data which
callers have to free after use.

Move an existing assigment such that the initial assignment, the memory
allocation, use of response data, and resource release are in closer
proximity, and thus are easier to reason about during maintenance.
Behaviour does not change.

This is motivated by bug #1683.
This commit is contained in:
Gerhard Sittig 2021-05-16 19:42:53 +02:00
parent 4fad41a8a4
commit 4da62209dd
1 changed files with 2 additions and 2 deletions

View File

@ -1380,8 +1380,6 @@ SR_PRIV int hmo_receive_data(int fd, int revents, void *cb_data)
(void)fd;
(void)revents;
data = NULL;
if (!(sdi = cb_data))
return TRUE;
@ -1410,6 +1408,7 @@ SR_PRIV int hmo_receive_data(int fd, int revents, void *cb_data)
*/
switch (ch->type) {
case SR_CHANNEL_ANALOG:
data = NULL;
if (sr_scpi_get_block(sdi->conn, NULL, &data) != SR_OK) {
if (data)
g_byte_array_free(data, TRUE);
@ -1442,6 +1441,7 @@ SR_PRIV int hmo_receive_data(int fd, int revents, void *cb_data)
data = NULL;
break;
case SR_CHANNEL_LOGIC:
data = NULL;
if (sr_scpi_get_block(sdi->conn, NULL, &data) != SR_OK) {
if (data)
g_byte_array_free(data, TRUE);