aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreutils/ln.c4
-rw-r--r--include/libbb.h2
-rw-r--r--libbb/isdirectory.c15
-rw-r--r--networking/httpd.c6
4 files changed, 11 insertions, 16 deletions
diff --git a/coreutils/ln.c b/coreutils/ln.c
index 88a9a8f91..0eb3e6579 100644
--- a/coreutils/ln.c
+++ b/coreutils/ln.c
@@ -69,8 +69,8 @@ int ln_main(int argc, char **argv)
src = last;
if (is_directory(src,
- (opts & LN_NODEREFERENCE) ^ LN_NODEREFERENCE,
- NULL)
+ (opts & LN_NODEREFERENCE) ^ LN_NODEREFERENCE
+ )
) {
src_name = xstrdup(*argv);
src = concat_path_file(src, bb_get_last_path_component_strip(src_name));
diff --git a/include/libbb.h b/include/libbb.h
index bc9b7b06d..22d2a5b20 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -314,7 +314,7 @@ extern char *strrstr(const char *haystack, const char *needle) FAST_FUNC;
//TODO: supply a pointer to char[11] buffer (avoid statics)?
extern const char *bb_mode_string(mode_t mode) FAST_FUNC;
-extern int is_directory(const char *name, int followLinks, struct stat *statBuf) FAST_FUNC;
+extern int is_directory(const char *name, int followLinks) FAST_FUNC;
enum { /* DO NOT CHANGE THESE VALUES! cp.c, mv.c, install.c depend on them. */
FILEUTILS_PRESERVE_STATUS = 1 << 0, /* -p */
FILEUTILS_DEREFERENCE = 1 << 1, /* !-d */
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 @@
* Return TRUE if fileName is a directory.
* Nonexistent files return FALSE.
*/
-int FAST_FUNC is_directory(const char *fileName, int followLinks, struct stat *statBuf)
+int FAST_FUNC is_directory(const char *fileName, int followLinks)
{
int status;
- struct stat astatBuf;
-
- if (statBuf == NULL) {
- /* use auto stack buffer */
- statBuf = &astatBuf;
- }
+ struct stat statBuf;
if (followLinks)
- status = stat(fileName, statBuf);
+ status = stat(fileName, &statBuf);
else
- status = lstat(fileName, statBuf);
+ status = lstat(fileName, &statBuf);
- status = (status == 0 && S_ISDIR(statBuf->st_mode));
+ status = (status == 0 && S_ISDIR(statBuf.st_mode));
return status;
}
diff --git a/networking/httpd.c b/networking/httpd.c
index cda7cc7af..e9cd213f1 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1302,7 +1302,7 @@ static void send_cgi_and_exit(
while ((script = strchr(script + 1, '/')) != NULL) {
int dir;
*script = '\0';
- dir = is_directory(url + 1, /*followlinks:*/ 1, NULL);
+ dir = is_directory(url + 1, /*followlinks:*/ 1);
*script = '/';
if (!dir) {
/* not directory, found script.cgi/PATH_INFO */
@@ -2048,7 +2048,7 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
/* If URL is a directory, add '/' */
if (urlp[-1] != '/') {
- if (is_directory(urlcopy + 1, 1, NULL)) {
+ if (is_directory(urlcopy + 1, /*followlinks:*/ 1)) {
found_moved_temporarily = urlcopy;
}
}
@@ -2062,7 +2062,7 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
while (ip_allowed && (tptr = strchr(tptr + 1, '/')) != NULL) {
/* have path1/path2 */
*tptr = '\0';
- if (is_directory(urlcopy + 1, 1, NULL)) {
+ if (is_directory(urlcopy + 1, /*followlinks:*/ 1)) {
/* may have subdir config */
parse_conf(urlcopy + 1, SUBDIR_PARSE);
ip_allowed = checkPermIP();