[hackers] [sbase] Remove st != NULL checks from recursor functions || Michael Forney

From: <git_AT_suckless.org>
Date: Mon, 3 Jul 2017 21:06:19 +0200 (CEST)

commit a5612b0d08b9abb4e65acaa3d322581af2fd7a39
Author: Michael Forney <mforney_AT_mforney.org>
AuthorDate: Wed Dec 14 19:40:02 2016 -0800
Commit: Anselm R Garbe <anselm_AT_garbe.us>
CommitDate: Mon Jul 3 21:03:02 2017 +0200

    Remove st != NULL checks from recursor functions
    
    In the description of 3111908b034c73673a2f079b2b13a88c18379baa, it says
    that the functions must be able to handle st being NULL, but recurse
    always passes a valid pointer. The only function that was ever passed
    NULL was rm(), but this was changed to go through recurse in
    2f4ab527391135e651b256f8654b050ea4a48f3d, so now the checks are
    pointless.

diff --git a/chgrp.c b/chgrp.c
index 299238b..5d3a71b 100644
--- a/chgrp.c
+++ b/chgrp.c
_AT_@ -26,10 +26,10 @@ chgrp(const char *path, struct stat *st, void *data, struct recursor *r)
                 chownf = chown;
         }
 
- if (st && chownf(path, st->st_uid, gid) < 0) {
+ if (chownf(path, st->st_uid, gid) < 0) {
                 weprintf("%s %s:", chownf_name, path);
                 ret = 1;
- } else if (st && S_ISDIR(st->st_mode)) {
+ } else if (S_ISDIR(st->st_mode)) {
                 recurse(path, NULL, r);
         }
 }
diff --git a/chmod.c b/chmod.c
index a0d96f1..109a7e5 100644
--- a/chmod.c
+++ b/chmod.c
_AT_@ -13,11 +13,11 @@ chmodr(const char *path, struct stat *st, void *data, struct recursor *r)
 {
         mode_t m;
 
- m = parsemode(modestr, st ? st->st_mode : 0, mask);
+ m = parsemode(modestr, st->st_mode, mask);
         if (chmod(path, m) < 0) {
                 weprintf("chmod %s:", path);
                 ret = 1;
- } else if (st && S_ISDIR(st->st_mode)) {
+ } else if (S_ISDIR(st->st_mode)) {
                 recurse(path, NULL, r);
         }
 }
diff --git a/chown.c b/chown.c
index 2009507..d7dc8e0 100644
--- a/chown.c
+++ b/chown.c
_AT_@ -32,7 +32,7 @@ chownpwgr(const char *path, struct stat *st, void *data, struct recursor *r)
         if (chownf(path, uid, gid) < 0) {
                 weprintf("%s %s:", chownf_name, path);
                 ret = 1;
- } else if (st && S_ISDIR(st->st_mode)) {
+ } else if (S_ISDIR(st->st_mode)) {
                 recurse(path, NULL, r);
         }
 }
diff --git a/du.c b/du.c
index 3dc3545..fb2c90b 100644
--- a/du.c
+++ b/du.c
_AT_@ -39,11 +39,11 @@ du(const char *path, struct stat *st, void *total, struct recursor *r)
 {
         off_t subtotal = 0;
 
- if (st && S_ISDIR(st->st_mode))
+ if (S_ISDIR(st->st_mode))
                 recurse(path, &subtotal, r);
- *((off_t *)total) += subtotal + nblks(st ? st->st_blocks : 0);
+ *((off_t *)total) += subtotal + nblks(st->st_blocks);
 
- if (!sflag && r->depth <= maxdepth && r->depth && st && (S_ISDIR(st->st_mode) || aflag))
+ if (!sflag && r->depth <= maxdepth && r->depth && (S_ISDIR(st->st_mode) || aflag))
                 printpath(subtotal + nblks(st->st_blocks), path);
 }
 
diff --git a/libutil/rm.c b/libutil/rm.c
index f6a54b6..11c20fb 100644
--- a/libutil/rm.c
+++ b/libutil/rm.c
_AT_@ -13,7 +13,7 @@ int rm_status = 0;
 void
 rm(const char *path, struct stat *st, void *data, struct recursor *r)
 {
- if (!r->maxdepth && st && S_ISDIR(st->st_mode)) {
+ if (!r->maxdepth && S_ISDIR(st->st_mode)) {
                 recurse(path, NULL, r);
 
                 if (rmdir(path) < 0) {
diff --git a/tar.c b/tar.c
index 71719b0..d2161d4 100644
--- a/tar.c
+++ b/tar.c
_AT_@ -370,7 +370,7 @@ c(const char *path, struct stat *st, void *data, struct recursor *r)
         if (vflag)
                 puts(path);
 
- if (st && S_ISDIR(st->st_mode))
+ if (S_ISDIR(st->st_mode))
                 recurse(path, NULL, r);
 }
 
Received on Mon Jul 03 2017 - 21:06:19 CEST

This archive was generated by hypermail 2.3.0 : Mon Jul 03 2017 - 21:12:32 CEST