From 7b086b6842b29981bd0cc5c62174bd3919d53cf0 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Tue, 23 Jun 2015 12:58:02 -0600 Subject: [PATCH] Quiet clang analyzer false positive. --- src/ttyname.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ttyname.c b/src/ttyname.c index fa1f58196..fd56f0105 100644 --- a/src/ttyname.c +++ b/src/ttyname.c @@ -184,9 +184,8 @@ sudo_ttyname_scan(const char *dir, dev_t rdev, bool builtin) { DIR *d = NULL; char pathbuf[PATH_MAX], **subdirs = NULL, *devname = NULL; - size_t sdlen, d_len, len, num_subdirs = 0, max_subdirs = 0; + size_t sdlen, num_subdirs = 0, max_subdirs = 0; struct dirent *dp; - struct stat sb; unsigned int i; debug_decl(sudo_ttyname_scan, SUDO_DEBUG_UTIL) @@ -209,6 +208,9 @@ sudo_ttyname_scan(const char *dir, dev_t rdev, bool builtin) pathbuf[sdlen] = '\0'; while ((dp = readdir(d)) != NULL) { + struct stat sb; + size_t d_len, len; + /* Skip anything starting with "." */ if (dp->d_name[0] == '.') continue; @@ -246,9 +248,10 @@ sudo_ttyname_scan(const char *dir, dev_t rdev, bool builtin) * We can't use it for links (since we want to follow them) or * char devs (since we need st_rdev to compare the device number). */ - if (dp->d_type != DT_UNKNOWN && dp->d_type != DT_LNK && dp->d_type != DT_CHR) + if (dp->d_type != DT_UNKNOWN && dp->d_type != DT_LNK && dp->d_type != DT_CHR) { sb.st_mode = DTTOIF(dp->d_type); - else + sb.st_rdev = 0; /* quiet ccc-analyzer false positive */ + } else # endif if (stat(pathbuf, &sb) == -1) continue; -- 2.40.0