]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
Don't test for NULL before calling free(3)
authorAlex Colomar <alx.manpages@gmail.com>
Wed, 28 Sep 2022 20:03:52 +0000 (22:03 +0200)
committerIker Pedrosa <ikerpedrosam@gmail.com>
Thu, 29 Sep 2022 14:03:53 +0000 (16:03 +0200)
free(3) accepts NULL, since the oldest ISO C.  I guess the
paranoid code was taking care of prehistoric implementations of
free(3).  I've never known of an implementation that doesn't
conform to this, so let's simplify this.

Remove xfree(3), which was effectively an equivalent of free(3).

Signed-off-by: Alejandro Colomar <alx@kernel.org>
lib/commonio.c
lib/getdef.c
lib/groupio.c
lib/prototypes.h
lib/sgetgrent.c
lib/tcbfuncs.c
libmisc/copydir.c
libmisc/xmalloc.c
src/gpasswd.c
src/login.c
src/newusers.c

index f7fb1597181772cc56532ac2e4483622eacd435c..9a02ce1acd9ae770aa31ca5bcc9164fc5fdaf328 100644 (file)
@@ -85,9 +85,7 @@ int lrename (const char *old, const char *new)
        res = rename (old, new);
 
 #ifdef __GLIBC__
-       if (NULL != r) {
-               free (r);
-       }
+       free (r);
 #endif                         /* __GLIBC__ */
 
        return res;
@@ -337,9 +335,7 @@ static void free_linked_list (struct commonio_db *db)
                p = db->head;
                db->head = p->next;
 
-               if (NULL != p->line) {
-                       free (p->line);
-               }
+               free (p->line);
 
                if (NULL != p->eptr) {
                        db->ops->free (p->eptr);
@@ -395,10 +391,8 @@ int commonio_lock_nowait (struct commonio_db *db, bool log)
                err = 1;
        }
 cleanup_ENOMEM:
-       if (file)
-               free(file);
-       if (lock)
-               free(lock);
+       free(file);
+       free(lock);
        return err;
 }
 
@@ -1200,9 +1194,7 @@ int commonio_remove (struct commonio_db *db, const char *name)
 
        commonio_del_entry (db, p);
 
-       if (NULL != p->line) {
-               free (p->line);
-       }
+       free (p->line);
 
        if (NULL != p->eptr) {
                db->ops->free (p->eptr);
index 2e6022fa5cf1e60e4168f701226bd4a84d3434c9..dcd1fe7209a90b1cba4a0bb1f13df878d0a2dd91 100644 (file)
@@ -388,10 +388,7 @@ int putdef_str (const char *name, const char *value)
                return -1;
        }
 
-       if (NULL != d->value) {
-               free (d->value);
-       }
-
+       free (d->value);
        d->value = cp;
        return 0;
 }
index 54af36e307650781427b35a3c4825f3db42104db..357a30eb9b0104482f7cf1730d64287a7e7df64d 100644 (file)
@@ -418,9 +418,7 @@ static int split_groups (unsigned int max_members)
                /* Shift all the members */
                /* The number of members in new_gptr will be check later */
                for (i = 0; NULL != new_gptr->gr_mem[i + max_members]; i++) {
-                       if (NULL != new_gptr->gr_mem[i]) {
-                               free (new_gptr->gr_mem[i]);
-                       }
+                       free (new_gptr->gr_mem[i]);
                        new_gptr->gr_mem[i] = new_gptr->gr_mem[i + max_members];
                        new_gptr->gr_mem[i + max_members] = NULL;
                }
index bd832f49125f95f3883b65bf3329083f4cbb3cb2..1172b5d7b35a0caa346b17e60a7430da0a3fd717 100644 (file)
@@ -483,7 +483,6 @@ extern bool valid (const char *, const struct passwd *);
 extern /*@maynotreturn@*/ /*@only@*//*@out@*//*@notnull@*/void *xmalloc (size_t size)
   /*@ensures MaxSet(result) == (size - 1); @*/;
 extern /*@maynotreturn@*/ /*@only@*//*@notnull@*/char *xstrdup (const char *);
-extern void xfree(void *ap);
 
 /* xgetpwnam.c */
 extern /*@null@*/ /*@only@*/struct passwd *xgetpwnam (const char *);
index 1ed3aa112c01611a0122d84d85b4ae2cbe268cc9..ad4fcc86bb2b78f260575e3aaf6eaf01c2ee60e2 100644 (file)
@@ -54,8 +54,7 @@ static char **list (char *s)
                                rbuf = malloc (size * sizeof (char *));
                        }
                        if (!rbuf) {
-                               if (members)
-                                       free (members);
+                               free (members);
                                members = 0;
                                size = 0;
                                return (char **) 0;
@@ -89,8 +88,7 @@ struct group *sgetgrent (const char *buf)
        if (strlen (buf) + 1 > size) {
                /* no need to use realloc() here - just free it and
                   allocate a larger block */
-               if (grpbuf)
-                       free (grpbuf);
+               free (grpbuf);
                size = strlen (buf) + 1000;     /* at least: strlen(buf) + 1 */
                grpbuf = malloc (size);
                if (!grpbuf) {
index 80838c51d52dd727f9dee1f1fa8099df6601d117..1ed5d030034b6491ea882e313c53a8e72eedbc36 100644 (file)
@@ -380,9 +380,7 @@ shadowtcb_status shadowtcb_set_user (const char* name)
                return SHADOWTCB_SUCCESS;
        }
 
-       if (NULL != stored_tcb_user) {
-               free (stored_tcb_user);
-       }
+       free (stored_tcb_user);
 
        stored_tcb_user = strdup (name);
        if (NULL == stored_tcb_user) {
index 24dfd5902a762556a4fcfa5fb8488b2464251c78..b692aa95d1d32e032872335abcb35eb1bfc56df6 100644 (file)
@@ -354,12 +354,8 @@ static int copy_tree_impl (const struct path_info *src, const struct path_info *
                                                  old_uid, new_uid,
                                                  old_gid, new_gid);
                        }
-                       if (NULL != src_name) {
-                               free (src_name);
-                       }
-                       if (NULL != dst_name) {
-                               free (dst_name);
-                       }
+                       free (src_name);
+                       free (dst_name);
                }
        }
        (void) closedir (dir);
index 25b136a494d606efdb5844a138aec052f4ce45e8..056d472ffb93fe4d9273436bc41d0f206c8ea2d3 100644 (file)
 {
        return strcpy (xmalloc (strlen (str) + 1), str);
 }
-
-void xfree(void *ap)
-{
-       if (ap) {
-               free(ap);
-       }
-}
index 85fb1d17a9d5a89098c2bb6f8e16d001bf27c8f4..5983f787984d852a4361db909ac5a8a62eb2789a 100644 (file)
@@ -1186,17 +1186,11 @@ int main (int argc, char **argv)
 
 #ifdef SHADOWGRP
        if (is_shadowgrp) {
-               if (sgent.sg_adm) {
-                       xfree(sgent.sg_adm);
-               }
-               if (sgent.sg_mem) {
-                       xfree(sgent.sg_mem);
-               }
+               free(sgent.sg_adm);
+               free(sgent.sg_mem);
        }
 #endif
-       if (grent.gr_mem) {
-               xfree(grent.gr_mem);
-       }
+       free(grent.gr_mem);
        exit (E_SUCCESS);
 }
 
index d1198756e6f66ff9efb20ec56b3aa29b4bb88591..00482816180bbed642e31758a89f90aff0f31ad1 100644 (file)
@@ -419,9 +419,7 @@ static void get_pam_user (char **ptr_pam_user)
        retcode = pam_get_item (pamh, PAM_USER, (const void **)&ptr_user);
        PAM_FAIL_CHECK;
 
-       if (NULL != *ptr_pam_user) {
-               free (*ptr_pam_user);
-       }
+       free (*ptr_pam_user);
        if (NULL != ptr_user) {
                *ptr_pam_user = xstrdup ((const char *)ptr_user);
        } else {
@@ -872,9 +870,7 @@ int main (int argc, char **argv)
         * PAM APIs.
         */
        get_pam_user (&pam_user);
-       if (NULL != username) {
-               free (username);
-       }
+       free (username);
        username = xstrdup (pam_user);
        failent_user = get_failent_user (username);
 
index 4c6546e8e20718de5eb67d6235a9ee48dade074a..deeb36145028f2a755883ed176e956d32b945433 100644 (file)
@@ -285,8 +285,7 @@ static int add_group (const char *name, const char *gid, gid_t *ngid, uid_t uid)
                fprintf (stderr,
                         _("%s: invalid group name '%s'\n"),
                         Prog, grent.gr_name);
-               if (grent.gr_name)
-                       free (grent.gr_name);
+               free (grent.gr_name);
                return -1;
        }