]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
src/useradd.c: set_defaults(): Fix FILE* leak
authorAlejandro Colomar <alx@kernel.org>
Fri, 17 May 2024 11:52:07 +0000 (13:52 +0200)
committerAlejandro Colomar <alx@kernel.org>
Fri, 17 May 2024 23:15:10 +0000 (01:15 +0200)
Report:
> shadow-4.15.0/src/useradd.c:575:2: alloc_fn: Storage is returned from allocation function "fdopen".
> shadow-4.15.0/src/useradd.c:575:2: var_assign: Assigning: "ofp" = storage returned from "fdopen(ofd, "w")".
> shadow-4.15.0/src/useradd.c:734:2: leaked_storage: Variable "ofp" going out of scope leaks the storage it points to.
> 732|           }
> 733|
> 734|->         return ret;
> 735|   }
> 736|

Link: <https://issues.redhat.com/browse/RHEL-35383>
Reported-by: Iker Pedrosa <ipedrosa@redhat.com>
Reviewed-by: Iker Pedrosa <ipedrosa@redhat.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
src/useradd.c

index e0238457d1096b5565d0d7ee4cee63fa44c169b9..347334a6dbe43ae079a91a4a04e4a3e12dec2f74 100644 (file)
@@ -615,7 +615,8 @@ static int set_defaults (void)
                                fprintf (stderr,
                                         _("%s: line too long in %s: %s..."),
                                         Prog, default_file, buf);
-                               (void) fclose (ifp);
+                               fclose(ifp);
+                               fclose(ofp);
                                goto err_free_def;
                        }
                }