tools:iio: free channel-array completely

In iio_utils.c build_channel_array() dynamically allocates the string
generic_name in the current iio_channel_info, which doesn't got freed in
case of an error.
This dynamically allocated channel-array is used by generic_buffer, and
needs to be freed on the error/exit path.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
Hartmut Knaack
2015-05-31 14:39:44 +02:00
committed by Jonathan Cameron
parent 66dd08fde0
commit 63f05c855f
2 changed files with 10 additions and 2 deletions

View File

@@ -410,8 +410,10 @@ int build_channel_array(const char *device_dir,
return 0;
error_cleanup_array:
for (i = count - 1; i >= 0; i--)
for (i = count - 1; i >= 0; i--) {
free((*ci_array)[i].name);
free((*ci_array)[i].generic_name);
}
free(*ci_array);
error_close_dir:
closedir(dp);