mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
tools:iio:iio_utils: fix allocation handling
In build_channel_array(), count needs to be decreased in more places since current->name and current->generic_name would be freed on the error path, although they have not been allocated, yet. This also requires to free current->name, when it is allocated, but current->generic_name is not yet allocated. Signed-off-by: Hartmut Knaack <knaack.h@gmx.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
63f05c855f
commit
121b5e505f
@ -334,6 +334,7 @@ int build_channel_array(const char *device_dir,
|
||||
if (sysfsfp == NULL) {
|
||||
free(filename);
|
||||
ret = -errno;
|
||||
count--;
|
||||
goto error_cleanup_array;
|
||||
}
|
||||
fscanf(sysfsfp, "%i", ¤t_enabled);
|
||||
@ -353,6 +354,7 @@ int build_channel_array(const char *device_dir,
|
||||
if (current->name == NULL) {
|
||||
free(filename);
|
||||
ret = -ENOMEM;
|
||||
count--;
|
||||
goto error_cleanup_array;
|
||||
}
|
||||
/* Get the generic and specific name elements */
|
||||
@ -360,6 +362,8 @@ int build_channel_array(const char *device_dir,
|
||||
¤t->generic_name);
|
||||
if (ret) {
|
||||
free(filename);
|
||||
free(current->name);
|
||||
count--;
|
||||
goto error_cleanup_array;
|
||||
}
|
||||
ret = asprintf(&filename,
|
||||
|
Loading…
Reference in New Issue
Block a user