[PATCH] node_device: fix leak of DIR*

Laine Stump posted 1 patch 3 years, 5 months ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20201028014659.435453-1-laine@redhat.com
src/node_device/node_device_udev.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] node_device: fix leak of DIR*
Posted by Laine Stump 3 years, 5 months ago
Commit 53aec799fa31 introduced the function udevGetVDPACharDev(),
which scans a directory using virDirOpenIfExists() and
virDirRead(). It unfortunately forgets to close the DIR* when it is
finished with it. This patch fixes that omission.

Signed-off-by: Laine Stump <laine@redhat.com>
---
 src/node_device/node_device_udev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index b1b8427c05..ec0bf9192b 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1162,6 +1162,7 @@ udevGetVDPACharDev(const char *sysfs_path,
                 virReportError(VIR_ERR_INTERNAL_ERROR,
                                _("vDPA chardev path '%s' does not exist"),
                                chardev);
+                VIR_DIR_CLOSE(dir);
                 return -1;
             }
             VIR_DEBUG("vDPA chardev is at '%s'", chardev);
@@ -1171,6 +1172,8 @@ udevGetVDPACharDev(const char *sysfs_path,
         }
     }
 
+    VIR_DIR_CLOSE(dir);
+
     if (direrr < 0)
         return -1;
 
-- 
2.26.2

Re: [PATCH] node_device: fix leak of DIR*
Posted by Daniel Henrique Barboza 3 years, 5 months ago

On 10/27/20 10:46 PM, Laine Stump wrote:
> Commit 53aec799fa31 introduced the function udevGetVDPACharDev(),
> which scans a directory using virDirOpenIfExists() and
> virDirRead(). It unfortunately forgets to close the DIR* when it is
> finished with it. This patch fixes that omission.
> 
> Signed-off-by: Laine Stump <laine@redhat.com>
> ---

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>

>   src/node_device/node_device_udev.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
> index b1b8427c05..ec0bf9192b 100644
> --- a/src/node_device/node_device_udev.c
> +++ b/src/node_device/node_device_udev.c
> @@ -1162,6 +1162,7 @@ udevGetVDPACharDev(const char *sysfs_path,
>                   virReportError(VIR_ERR_INTERNAL_ERROR,
>                                  _("vDPA chardev path '%s' does not exist"),
>                                  chardev);
> +                VIR_DIR_CLOSE(dir);
>                   return -1;
>               }
>               VIR_DEBUG("vDPA chardev is at '%s'", chardev);
> @@ -1171,6 +1172,8 @@ udevGetVDPACharDev(const char *sysfs_path,
>           }
>       }
>   
> +    VIR_DIR_CLOSE(dir);
> +
>       if (direrr < 0)
>           return -1;
>   
> 

Re: [PATCH] node_device: fix leak of DIR*
Posted by Ján Tomko 3 years, 5 months ago
On a Tuesday in 2020, Laine Stump wrote:
>Commit 53aec799fa31 introduced the function udevGetVDPACharDev(),
>which scans a directory using virDirOpenIfExists() and
>virDirRead(). It unfortunately forgets to close the DIR* when it is
>finished with it. This patch fixes that omission.
>
>Signed-off-by: Laine Stump <laine@redhat.com>
>---
> src/node_device/node_device_udev.c | 3 +++
> 1 file changed, 3 insertions(+)
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano