diff mbox series

[1/5] ldconfig: avoid leak on empty paths in config file

Message ID 20210727174129.3612656-2-siddhesh@sourceware.org
State New
Headers show
Series Static analysis fixes | expand

Commit Message

Siddhesh Poyarekar July 27, 2021, 5:41 p.m. UTC
---
 elf/ldconfig.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Arjun Shankar Aug. 3, 2021, 3:08 p.m. UTC | #1
Hi Siddhesh,

> ---
>  elf/ldconfig.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/elf/ldconfig.c b/elf/ldconfig.c
> index 1037e8d0cf..b8893637f8 100644
> --- a/elf/ldconfig.c
> +++ b/elf/ldconfig.c
> @@ -503,7 +503,11 @@ add_dir_1 (const char *line, const char *from_file, int from_line)
>      entry->path[--i] = '\0';
>  
>    if (i == 0)
> -    return;
> +    {
> +      free (entry->path);
> +      free (entry);
> +      return;
> +    }
>  
>    char *path = entry->path;
>    if (opt_chroot != NULL)

This looks good to me.

entry and entry->path are allocated earlier via xmalloc and xstrdup
respectively and this frees them prior to an early conditional return.

Reviewed-by: Arjun Shankar <arjun@redhat.com>

Cheers!
diff mbox series

Patch

diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index 1037e8d0cf..b8893637f8 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -503,7 +503,11 @@  add_dir_1 (const char *line, const char *from_file, int from_line)
     entry->path[--i] = '\0';
 
   if (i == 0)
-    return;
+    {
+      free (entry->path);
+      free (entry);
+      return;
+    }
 
   char *path = entry->path;
   if (opt_chroot != NULL)