From f282c6b65775d3dff03de6fd3585722a1638f734 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 18 Dec 2011 03:27:46 +0100 Subject: [PATCH] libbb: remove is_directory's argument which is always NULL function old new delta send_cgi_and_exit 892 890 -2 ln_main 447 445 -2 handle_incoming_and_exit 2784 2780 -4 is_directory 66 59 -7 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/6 up/down: 2/-19) Total: -15 bytes Signed-off-by: Denys Vlasenko --- coreutils/ln.c | 4 ++-- include/libbb.h | 2 +- libbb/isdirectory.c | 15 +++++---------- networking/httpd.c | 6 +++--- 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();