aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
Diffstat (limited to 'libbb')
-rw-r--r--libbb/isdirectory.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/libbb/isdirectory.c b/libbb/isdirectory.c
index 9861be6f8..ba6c52ce8 100644
--- a/libbb/isdirectory.c
+++ b/libbb/isdirectory.c
@@ -15,22 +15,17 @@
15 * Return TRUE if fileName is a directory. 15 * Return TRUE if fileName is a directory.
16 * Nonexistent files return FALSE. 16 * Nonexistent files return FALSE.
17 */ 17 */
18int FAST_FUNC is_directory(const char *fileName, int followLinks, struct stat *statBuf) 18int FAST_FUNC is_directory(const char *fileName, int followLinks)
19{ 19{
20 int status; 20 int status;
21 struct stat astatBuf; 21 struct stat statBuf;
22
23 if (statBuf == NULL) {
24 /* use auto stack buffer */
25 statBuf = &astatBuf;
26 }
27 22
28 if (followLinks) 23 if (followLinks)
29 status = stat(fileName, statBuf); 24 status = stat(fileName, &statBuf);
30 else 25 else
31 status = lstat(fileName, statBuf); 26 status = lstat(fileName, &statBuf);
32 27
33 status = (status == 0 && S_ISDIR(statBuf->st_mode)); 28 status = (status == 0 && S_ISDIR(statBuf.st_mode));
34 29
35 return status; 30 return status;
36} 31}