lsx: check snprintf
authorConnor Lane Smith <cls@lubutu.com>
Thu, 23 Jun 2011 19:04:50 +0000 (20:04 +0100)
committerConnor Lane Smith <cls@lubutu.com>
Thu, 23 Jun 2011 19:04:50 +0000 (20:04 +0100)
lsx.c

diff --git a/lsx.c b/lsx.c
index fd28625..e5b5c0b 100644 (file)
--- a/lsx.c
+++ b/lsx.c
@@ -30,10 +30,9 @@ lsx(const char *dir) {
                perror(dir);
                return;
        }
-       while((d = readdir(dp))) {
-               snprintf(buf, sizeof buf, "%s/%s", dir, d->d_name);
-               if(!stat(buf, &st) && S_ISREG(st.st_mode) && access(buf, X_OK) == 0)
+       while((d = readdir(dp)))
+               if(snprintf(buf, sizeof buf, "%s/%s", dir, d->d_name) < sizeof buf
+               && !stat(buf, &st) && S_ISREG(st.st_mode) && access(buf, X_OK) == 0)
                        puts(d->d_name);
-       }
        closedir(dp);
 }