[pacman-dev] [PATCH 2/4] Another unneeded NULL check removed
Silvan Jegen
s.jegen at gmail.com
Tue Jan 28 12:33:49 EST 2014
On Tue, Jan 28, 2014 at 10:58:30AM -0600, Dan McGee wrote:
> On Tue, Jan 28, 2014 at 10:50 AM, Silvan Jegen <s.jegen at gmail.com> wrote:
>
> > Signed-off-by: Silvan Jegen <s.jegen at gmail.com>
> > ---
> > src/pacman/util.c | 10 ++++------
> > 1 file changed, 4 insertions(+), 6 deletions(-)
> >
> > diff --git a/src/pacman/util.c b/src/pacman/util.c
> > index 58b0cec..4aaa98f 100644
> > --- a/src/pacman/util.c
> > +++ b/src/pacman/util.c
> > @@ -206,12 +206,10 @@ int rmrf(const char *path)
> > return 1;
> > }
> > for(dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
> > - if(dp->d_name) {
> > - if(strcmp(dp->d_name, "..") != 0 &&
> > strcmp(dp->d_name, ".") != 0) {
> > - char name[PATH_MAX];
> > - snprintf(name, PATH_MAX, "%s/%s",
> > path, dp->d_name);
> > - errflag += rmrf(name);
> > - }
> > + if(strcmp(dp->d_name, "..") != 0 &&
> > strcmp(dp->d_name, ".") != 0) {
> > + char name[PATH_MAX];
> > + snprintf(name, PATH_MAX, "%s/%s", path,
> > dp->d_name);
> > + errflag += rmrf(name);
> >
>
> I'm failing to see how this one is valid. Please explain? I'm not sure the
> original code is right (we should likely be checking that d_name[0] is !=
> '\0;), but removing the check completely seems heavy-handed.
My reasoning was very simple. I assume that each directory entry MUST
have a filename (that only contains a terminating NULL character) so
checking whether the d_name field of the dirent struct is NULL should
not be necessary.
If I missed a case where the filename can actually be NULL then just
ignore this one.
More information about the pacman-dev
mailing list