projects
/
qemu-gpiodev
/
libgpiod.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
ba0a799
)
core: release all lines in gpiod_chip_close()
author
Bartosz Golaszewski
<bartekgola@gmail.com>
Mon, 2 Jan 2017 13:55:25 +0000
(14:55 +0100)
committer
Bartosz Golaszewski
<bartekgola@gmail.com>
Mon, 2 Jan 2017 13:55:25 +0000
(14:55 +0100)
This fixes a memory leak if the user forgets to explicitly release
requested lines.
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
core.c
patch
|
blob
|
history
diff --git
a/core.c
b/core.c
index 077c116d3af9bb44be78c2f72ae10dcddbfa2399..cc72c4de6ff16add640c2c06c6c7b6e9f0908884 100644
(file)
--- a/
core.c
+++ b/
core.c
@@
-382,6
+382,13
@@
struct gpiod_chip * gpiod_chip_open_lookup(const char *descr)
void gpiod_chip_close(struct gpiod_chip *chip)
{
+ unsigned int i;
+
+ for (i = 0; i < chip->cinfo.lines; i++) {
+ if (chip->lines[i].requested)
+ gpiod_line_release(&chip->lines[i]);
+ }
+
close(chip->fd);
free(chip->lines);
free(chip);